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.

image-117
Ici chaque cercle représente un commit.

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.

image-113
Ici chaque cercle représente un commit.

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.

image-112
Ici chaque cercle représente un commit.

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 !