---
# System prepended metadata

title: GIT cheat sheet
tags: [M8, GIT, daw, ' Control Versions']

---

<div style="width: 30%; margin-left: auto;">
    
![](https://hackmd.io/_uploads/HJiR4eGJT.png)  
    
![image](https://hackmd.io/_uploads/By3ai4Bolx.png)
    
</div>

<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>

# GIT cheat sheet.
![image](https://hackmd.io/_uploads/H10tKpy0lx.png)

### Només instal·lar
![image](https://hackmd.io/_uploads/ByDu_p1Cle.png)

Configurar el nom i l'email de l'usuari, sense aquestes dades no es poden fer commits.
```
git config --global user.name "nom i cognom"
git config --global user.email "el teu email"
```

### Creació repositori local
![image](https://hackmd.io/_uploads/H1Xgu6yCee.png)
Si tenim un projecte iniciat i volem començar a treballar amb GIT en aquest projecte:
```
git init
git add .
git commit -m "Missatge del commit"
```

Si volem descarregar un repositori remot:
```
git clone "URL"
```

### La rutina diària
![image](https://hackmd.io/_uploads/S1e9uTk0xg.png)

* `git status`: Mostra com està el nostre arbre de directoris. Ens diu quins fitxers han canviat, quins hem afegit a l'_staged area_, quina és la posició local respecte del _remot_, etc.
* `git add "Ruta"`: afegeix fitxers i/o directoris a l'staged area.
* `git reset "Ruta"`: Extreu de l'staged area sense desfer els canvis.
* `git commit -m "missatge"`: crea un nou commit.
* `git pull`: Obté nous commits del _remot_.
* `git push`: Envia nous commits al _remot_.
* `git log --oneline --graph`: mostra l'historial de commits.
* `git fetch`: Obté la informació del remot, però no canvia la nostra branca local ni l'arbre de directoris. 

### Branques
![image](https://hackmd.io/_uploads/HJKa_pyAee.png)

* `git branch`: Lista totes les branques locals.
* `git branch "nom branca"`: crea una nova branca.
* `git checkout "nom branca"`: _Salta_ a una altra branca.
* `git merge "nom branca"`: Incorpora a la branca actual els commits de la branca que hem mencionat. Normalment crea un nou commit amb el resultat de barrejar els fitxers d'ambdues branques.
* `git rebase "nom branca"`: Mou la nostra branca actual a continuació de la branca mencionada. No realitzar mai quan estiguem en branques publicades.

### Quan l'estem liant parda
![image](https://hackmd.io/_uploads/HJlkFayAxe.png)

* `git reset --hard "commit|branca|tag"`: Envia la branca actual al commit especificat.

### Quan tinc una patata calenta
![image](https://hackmd.io/_uploads/Sye-Y6J0gg.png)

* `git stash`: Desa l'estat actua en una pila per a recuperar-lo més tard.
* `git stash pop`: Recupera un estat desat.
* `git stash drop`: Descarta definitivament l'estat desat.
* `git stash list`: Llista per pantalla la pila d'estats desats.

