Avec git, il arrive que l’on veuille annuler des commits faits mais que, malheureusement, on les a déjà propagé avec git push.

Plusieurs méthodes existent, vous trouverez des tas de solutions plus ou moins claires sur Google. Néanmoins, la plus propre reste l’application d’un revert, puis d’un nouveau push. Ceci permet de garder trace de votre annulation, explicitant ainsi aux autres membres du projet ce qui s’est passé (ou à vous même de vous rappeller pourquoi si vous travaillez seul).

Annuler un commit en particulier déjà pushé

Dans un premier temps, vous récupérer l’id du commit à annuler, par exemple en consultant les logs :

git log

Puis, vous annulez le commit en question proprement :

git revert XXX

ou XXX est l’id du commit à annuler.
Puis vous pushez proprement avec

git push

Annuler les N derniers commits déjà pushés

La même méthode est employée, mais vous pouvez utiliser la commande suivante qui annulera par exemple les 5 derniers commits. Il vous restera alors à pusher proprement.

git revert HEAD~5