<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.