Seguir des d'un commit anterior#

  • Fer checkout d'un commit:

git checkout <specific-commit-id>

Fem els canvis necessaris, en cas que ens calgui

  • Creem una nova branca:

git checkout -b <new-branch-name>

  • Pujem els canvis a la nova branca:

git push --set-upstream origin <new-branch-name>

Eliminar una branca remota#

  • Previament fem un merge (si ens convé):

git checkout <master>

git merge <remote>

git push origin master

  • Eliminem la branca en local:

git branch -d <remote>

  • Finalment eliminem la referencia remota:

git push origin --delete <remote>

Gestionar operacions amb merge#

  • Desfer un merge abans de fer push

git reset --merge ORIG_HEAD

  • Fer merge d'alguns fitxers:

git checkout <branch> <file_paths>

git status

git commit -m "comment"

  • Fer merge d'un commit a una altra branca:

Primer cal fer un checkout de la branca que ha de rebre el nou commit

git checkout <branch>

git cherry-pick -e <commit-hash>

Operacions amb tags (releases)#

  • Com etiquetar (o generar una release) d'un commit anterior:

git tag -a <tag> <commit_id> -m "comment"

git push origin <tag>

pot ser per exemple v1.0.0.

  • Eliminar un tag:

git tag -d <tag>

git push origin :<tag>

  • Llistar tags:

git tag -n

Renombrar una branca#

  • Modifiquem la branca amb el nou nom:

Si previament fem un checkout de la branca a renombrar fem:

git branch -m <new_name>

En cas que estiguem en una altra branca fem:

git branch -m <old_name> <new_name>

  • Pujem els canvis a la branca amb el nou nom:

git push origin -u <new_name>

  • Eliminem la referencia al nom vell:

git push origin --delete <old_name>

Revertir canvis en local#

  • Revertir tots els canvis:

git reset --hard

  • Revertir els canvis d'un fitxer:

git checkout -- <filename>

Substituir una branca per una altra#

Per exemple substituirem master per dev:

git checkout dev

git merge -s ours master

git checkout master

git merge dev

La clau es aplicar l'estrategia -s ours a master

Font stackoverflow.com

Eliminar l'últim commit#

git reset --hard HEAD^

podem eliminar els X últims si fem git reset --hard HEAD~X

  • forcem l'actualització del repositori: git push origin -f