Menu
Coddy logo textTech

Git : Annuler un commit

Dernière mise à jour

La façon d'annuler un commit dépend du commit visé et du fait qu'il ait été poussé ou non. Un commit ancien enfoui dans votre historique - ou tout ce qui est déjà partagé - appelle git revert, qui ajoute un nouveau commit l'inversant sans rien réécrire. Une série de commits locaux récents peut simplement être effacée avec git reset. Si vous avez seulement besoin d'annuler le commit le plus récent, la page git annuler le dernier commit couvre toutes les variantes de cette solution rapide.

Essayez ces commandes dans le terminal playground : un vrai shell dans votre navigateur, rien à installer.

Quelle commande utiliser

SituationCommand
Annuler un commit ancien, garder tout ce qui suitgit revert <hash>
Annuler un commit déjà pousségit revert <hash>
Annuler les 3 derniers commits locaux, garder le travailgit reset --soft HEAD~3
Annuler les 3 derniers commits locaux, supprimer le travailgit reset --hard HEAD~3
Annuler une plage avec de nouveaux commits inversesgit revert HEAD~3..HEAD

reset vs revert

Behaviorgit resetgit revert
Réécrit l'historiqueOuiNon
Sûr sur les commits poussésNonOui
Crée un nouveau commitNonOui
Fonctionne sur d'anciens commits au milieu de l'historiqueNonOui
Peut supprimer les modificationsOui (--hard)Non

Exemple concret

Annulez un commit ancien précis - même déjà poussé - sans toucher aux commits qui l'ont suivi.

StepCommandResult
1git log --onelineTrouvez le hash du mauvais commit (par ex. a1b2c3d)
2git revert a1b2c3dUn nouveau commit l'inverse ; les commits suivants restent intacts
3git pushPartagez le correctif - aucun historique n'a été réécrit

FAQ : annuler un commit avec Git

Comment annuler un commit ancien sans perdre les commits qui le suivent ?
Utilisez git revert <hash>. Revert crée un nouveau commit qui inverse uniquement celui que vous nommez : chaque commit postérieur reste exactement tel quel. Trouvez d'abord le hash avec git log --oneline. Si le revert entre en conflit avec des changements ultérieurs, Git s'interrompt pour vous laisser résoudre, puis git revert --continue.
Comment annuler plusieurs commits à la fois ?
Pour des commits encore locaux, git reset --soft HEAD~3 retire les trois derniers tout en gardant leurs modifications indexées (utilisez --hard pour les supprimer). Pour des commits poussés, annulez plutôt la plage : git revert --no-commit HEAD~3..HEAD inverse les trois, puis un seul git commit enregistre l'annulation.
Comment annuler un commit que j'ai déjà poussé ?
Utilisez git revert <hash> plutôt que reset. Revert crée un nouveau commit qui annule les modifications du commit ciblé, en laissant l'historique intact. C'est la façon sûre d'annuler des commits partagés : réécrire l'historique poussé avec reset oblige tout le monde à réconcilier ses copies.
Quand utiliser reset et quand utiliser revert ?
Reset quand les commits n'appartiennent qu'à vous et sont encore locaux : il ramène simplement la branche en arrière, comme s'ils n'avaient jamais existé. Revert quand le commit est poussé, partagé ou situé au milieu de l'historique : il annule les modifications avec un nouveau commit que tout le monde peut récupérer sans risque.
Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter ces commandes dans un vrai shell dans votre navigateur, rien à installer. Le cours Git interactif et gratuit de Coddy couvre aussi l'annulation des modifications étape par étape.
Coddy programming languages illustration

Apprenez Git avec Coddy

COMMENCER