Git : annuler le dernier commit
Dernière mise à jour
Pour annuler le commit le plus récent, décidez de ce qu'il doit advenir de ses changements. Gardez-les indexés avec git reset --soft HEAD~1, gardez-les non indexés avec un simple git reset HEAD~1, ou supprimez-les avec git reset --hard HEAD~1. Si le commit n'est que légèrement erroné, git commit --amend le corrige sur place. S'il est déjà poussé, utilisez git revert au lieu de réécrire l'historique. Pour annuler un commit plus ancien ou plusieurs commits à la fois, consultez la page git annuler un commit.
Essayez-les dans le terminal playground : un vrai shell dans votre navigateur, rien à installer.
Choisissez quoi faire des changements
| Goal | Command |
|---|---|
| Annuler le commit, garder les changements indexés | git reset --soft HEAD~1 |
| Annuler le commit, garder les changements non indexés | git reset HEAD~1 |
| Annuler le commit, supprimer les changements | git reset --hard HEAD~1 |
| Corriger le dernier commit (message ou fichiers) | git commit --amend |
| Annuler un commit déjà poussé | git revert HEAD |
Exemple concret
Annulez le dernier commit et refaites-le avec un meilleur message.
| Step | Command | Result |
|---|---|---|
| 1 | git reset --soft HEAD~1 | Commit supprimé, les changements restent indexés |
| 2 | git commit -m "clearer message" | Recommit des mêmes changements |
FAQ : annuler le dernier commit dans Git
Comment annuler le dernier commit tout en conservant les changements ?
git reset --soft HEAD~1. Cela supprime le dernier commit mais laisse ses changements indexés, ce qui vous permet de les recommiter aussitôt. Pour que les changements soient non indexés dans votre arbre de travail, utilisez git reset HEAD~1 (le mode par défaut).Comment annuler le dernier commit et supprimer les changements ?
git reset --hard HEAD~1. Cela supprime le commit et écarte ses changements de votre arbre de travail. C'est destructeur : si vous pourriez avoir besoin du travail, utilisez plutôt --soft, ou récupérez-le ensuite via git reflog.Et si je dois seulement corriger le message du commit ?
git commit --amend. Il rouvre le dernier commit pour que vous puissiez modifier son message (et réindexer des fichiers si besoin) sans créer un commit séparé. Évitez d'amender un commit déjà poussé, car cela réécrit l'historique.Comment annuler le dernier commit après l'avoir poussé ?
git revert HEAD. Revert crée un nouveau commit qui inverse le précédent, en laissant l'historique intact : le choix sûr pour les branches partagées. Réinitialiser un commit poussé force tout le monde à réconcilier une branche réécrite.