Menu
Coddy logo textTech

Git Revert

Dernière mise à jour

git revert annule un commit en créant un nouveau commit qui applique l'inverse de ses modifications. Comme il ajoute à l'historique plutôt que de le réécrire, revert est le moyen sûr d'annuler un commit déjà poussé - contrairement à git reset, il ne force pas tous les autres à réconcilier une branche réécrite.

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

git revert laisse le mauvais commit en place et ajoute un nouveau commit qui applique son inverse - l'historique n'est jamais réécrit.

Syntaxe

CommandWhat it does
git revert HEADAnnule le commit le plus récent
git revert <hash>Annule un commit précis par son hash
git revert HEAD~2..HEADAnnule une plage de commits
git revert -n <hash>Annule mais ne commite pas encore (indexe seulement)
git revert -m 1 <merge-hash>Annule un commit de merge en conservant le parent 1

Pendant un revert

Si le revert rencontre un conflit, résolvez-le et continuez.

CommandWhat it does
git revert --continueReprend après la résolution des conflits
git revert --abortAnnule le revert en cours
git revert --skipIgnore le commit actuel et continue

revert vs reset

Behaviorgit revertgit reset
Réécrit l'historiqueNonOui
Sûr sur les commits poussésOuiNon
Crée un nouveau commitOuiNon
Annule un commit au milieuOuiCompliqué

FAQ git revert

Quelle est la différence entre git revert et git reset ?
git revert ajoute un nouveau commit qui annule les modifications d'un commit antérieur, en laissant l'historique intact - sûr pour les commits que vous avez déjà poussés. git reset déplace le pointeur de votre branche en arrière et réécrit l'historique, ce qui convient aux commits locaux mais est dangereux sur les branches partagées. Utilisez revert pour annuler des commits publics et reset pour annuler des commits locaux.
Comment annuler un commit déjà poussé ?
Exécutez git revert <hash> (ou git revert HEAD pour le plus récent), puis poussez le nouveau commit de revert. Comme revert ne réécrit pas l'historique, c'est la bonne façon d'annuler un commit partagé - sans force-push et sans perturbation pour les coéquipiers qui l'ont déjà récupéré.
Comment annuler un commit de merge ?
Un commit de merge a deux parents, donc Git doit savoir quelle ligne d'historique conserver. Utilisez git revert -m 1 <merge-hash>, où -m 1 indique à Git de conserver le premier parent (généralement la branche sur laquelle vous avez fusionné). Annuler un merge défait les modifications fusionnées mais conserve le merge dans l'historique.
Puis-je annuler plusieurs commits à la fois ?
Oui. Passez une plage comme git revert HEAD~2..HEAD pour annuler les deux derniers commits, ou listez plusieurs hashes. Par défaut, Git crée un commit de revert par commit annulé ; ajoutez -n pour indexer toutes les annulations sans commiter, puis créez vous-même un seul commit.
Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter git revert dans un vrai shell dans votre navigateur - rien à installer. Le cours interactif et gratuit de Git de Coddy explique aussi comment annuler des modifications étape par étape.
Coddy programming languages illustration

Apprenez Git avec Coddy

COMMENCER