git revert pour annuler proprement le dernier commit
mercredi 14 novembre 2012 à 16:18On ne peut pas à proprement parler supprimer un commit de Git. Mais on peut l’inverser proprement.
Assurez-vous d’avoir une copie de travail propre (sans files to be commited ou conflits, quitte à stasher). Puis:
git revert HEAD~1
Cette commande va immédiatement prendre le précédent commit, créer une commit exactement inverse, et l’appliquer.
Si vous aviez: C1 — C2 — C3
Et que vous vouliez annuler C3.
Vous allez vous retrouver avec: C1 — C2 — C3 — C4.
Avec C4 comme exacte inverse de C3.
Si vous voulez annuler plus d’un commit: git revert HEAD~nombre-de-commits
Y a plus qu’à pusher !
Ceci est complètement différent de git commit --amend
qui lui remplace le commit précédent par le commit actuel à condition de ne pas avoir pushé le commit précédent.
Avec amend, si vous aviez:
Si vous aviez: C1 — C2 — C3
Et que vous vouliez annuler C3.
Vous allez vous retrouver avec: C1 — C2 — C4
Mais il faut créer C4 de toute pièce.
revert
, c’est comme Cabrel: c’était mieux avant.
amend
, c’est comme Britney: ooups, I did it again.