Comment annuler un commit Git ?

Lors d'un projet dans lequel l'outil de gestion de versions Git est utilisé, il arrive que l'on fasse une erreur en ajoutant ou validant le mauvais fichier.

Lors d'un projet dans lequel l'outil de gestion de versions Git est utilisé, il est nécessaire de régulièrement valider son travail en réalisant un commit. Il arrive cependant que l'on fasse une erreur en ajoutant ou en validant le mauvais fichier. Il existe heureusement un moyen de revenir en arrière en faisant quelques manipulations (Lire aussi notre autre astuce sur Git: Comment corriger une erreur dans un message de commit Git ?).

La commande git reset permet de faire revenir en arrière la branche visée. Il est possible dans les paramètres de la commande de choisir si l'on souhaite annuler les modifications liées à cette révision faites dans les fichiers locaux et de les garder pour le commit.

Pour cela il existe trois options différentes : --mixed si l'on veut revenir en arrière dans l'historique, garder ses modifications et enlever les marques pour les commit (il s'agit du comportement par défaut de la méthode), --soft si l'on souhaite revenir en arrière dans l'historique, garder les modifications et garder les marques pour les commit, --hard si l'on souhaite annuler toutes les modifications dans l'historique et dans les fichiers locaux. Le deuxième paramètre qu'accepte la commande est la version à laquelle on souhaite revenir. Pour la version située avant le dernier commit, on indiquera HEAD^, pour la deuxième version récente HEAD~2 et ainsi de suite.

Exemples :

//Pour annuler un ajout de fichier, un simple retour en arrière en gardant les modifications suffit
git reset --soft HEAD^
//Si l'on juge que les 3 dernières versions n'étaient pas bonnes et que l'on souhaite tout annuler
git resert --hard HEAD~3

Git en pratique :

Git