Annuler le dernier commit dans Git

Abdul Jabbar 30 janvier 2023
  1. Annuler le dernier commit dans Git (version longue)
  2. Annuler la dernière validation dans Git (version courte)
Annuler le dernier commit dans Git

En travaillant avec Git, nous sommes confrontés à diverses situations dans lesquelles nous voulons délibérément annuler le dernier commit parce que nous voudrions le recommettre largement ou même le supprimer complètement ensemble en raison d’erreurs que nous avons commises dans le passé. Pensez simplement au nombre de personnes supplémentaires qui utiliseraient Git s’il avait de simples options Undo Last Commit ou même un raccourci clavier qui serait la fonctionnalité la plus populaire.

Nous avons une commande simple et puissante qui fait la même chose que celle décrite ci-dessus. Cette commande est vraiment puissante, car elle supprime le dernier commit et restaure le HEAD (la branche actuelle) à l’état où il était avant que le dernier commit ne soit effectué dans ce référentiel. Cela peut être un peu déroutant pour les nouveaux utilisateurs Git mais une fois que nous aurons mis la main dessus, cela deviendra si facile pour notre boîte à outils Git.

Annuler le dernier commit dans Git (version longue)

Tout d’abord, ouvrez le terminal souhaité et exécutez le statut Git. Cela nous montrera l’état de notre référentiel, y compris la liste de tous les commits que nous avons effectués. La plupart du temps, il est indiqué qu’il y a trois commits.

Le premier est un commit sur une branche appelée master, qui est la branche sur laquelle nous nous trouvons actuellement dans le référentiel. Le second est un commit sur une nouvelle branche appelée Dev, et enfin, le troisième est un commit sur une autre branche appelée NewDev.

Les deux derniers sont intéressants, car ce sont eux que nous voulons défaire. Nous voulons abandonner le commit que nous avons fait pour Dev et NewDev et restaurer le HEAD dans l’état où il était avant que ces commits ne soient faits. Exécutons la commande ci-dessous et voyons ce qui se passe ensuite :

$ git reset --hard 

HEAD est maintenant à l’état précédent où il se trouvait auparavant. Comme nous pouvons le voir, le nouveau pointeur HEAD revient maintenant au prochain commit. Notez qu’il n’y a plus de commit marqué comme Dev. De plus, le commit marqué comme NewDev est de retour au next commit.

Annuler la dernière validation dans Git (version courte)

Si nous voulons annuler le dernier commit, assurez-vous que nous sommes sur la branche à partir de laquelle nous voulons annuler le commit, puis exécutez git reset –hard. Si nous voulons annuler le dernier commit sur la branche actuelle, assurez-vous que nous sommes sur master, puis exécutez la commande ci-dessous.

git reset --hard origin/master.  

Les procédures mentionnées ci-dessus ne peuvent être appliquées que lorsque nous sommes complètement sûrs que nous n’avons plus besoin de ces changements. Mais dans l’autre sens, si nous avons besoin de ces modifications en tant que modifications locales non validées dans notre copie de travail, alors dans ce cas, la commande reset est notre solution à ce problème :

$ git reset --soft HEAD~1

reset annulera notre branche HEAD actuelle à un point spécifique. Dans notre exemple mentionné ci-dessus, nous ordonnons de revenir au dernier commit avant l’annulation récente - créant ainsi notre dernier commit not done. Le drapeau --soft garantit que les changements dans les révisions annulées sont restaurés.

Auteur: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Article connexe - Git Commit