Original article: Git Revert Commit – How to Undo the Last Commit
Vous êtes entrain d'écrire votre code sur Git et pour une raison ou une autre tout ne se passe pas comme prévu. Il vous faudra donc revenir en arrière et annuler votre dernier commit. Découvrons ensemble comment faire!
Nous vous présentons deux manières de procéder. Les voici.
La commande revert
La commande revert
va créer un commit qui annule les dernières modifications sur le commit cible. Cela peut s'effectuer comme suit :
git revert <commit à annuler>
Vous pouvez trouver le nom du commit à défaire en utilisant git log
. Le premier commit qui y est décrit est le dernier commit créé. Vous pouvez alors copier le nom alphanumérique du dernier commit et l'utiliser dans la commande revert
.

La commande reset
La commande reset
peut aussi être utiliser pour rétablir le dernier commit. Mais il faut faire attention –cette commande change l'historique des commits, et il ne faut l'utiliser qu'exceptionnellement. Elle déplacera le HEAD, la branche de travail, vers le commit indiqué, et ignorera tout ce qui suit :
git reset --soft HEAD~1
L'option --soft
veut dire que vous ne perdez pas les modifications non validées.

Si vous voulez revenir au commit précédent et également supprimer toutes les modifications non organisées, vous pouvez utiliser l'option --hard
:
git reset --hard HEAD~1
L'opération défait le dernier commit, ainsi que les modifications non engagées.

Lequel utiliser, reset
ou revert
sur Git?
reset
doit se limiter uniquement au modifications de commit locales. Cette commande modifie l'historique des commit et peut écraser les actions dont dépendent les autres membres de l'équipe.revert
crée plutôt un nouveau commit qui annule les changements, donc si le commit à rétablir a déjà été soumis vers un dépôt partagé, il est préférable d'utiliser revert
car elle n'écrase pas l'historique du commit.
Conclusion
Nous avons présenter deux manières d'annuler le dernier commit et quand il est préférable d'utiliser l'une plutôt que l'autre.
Maintenant, si vous remarquez que votre dernier commit introduit un bug ou n'aurait pas dû être livré, vous pouvez désormais le corriger !