Git : Abandonner une fusion
Dernière mise à jour
Si un git merge rencontre des conflits et que vous préférez faire marche arrière plutôt que de les résoudre, git merge --abort annule la fusion et restaure votre branche exactement dans l'état où elle était avant que vous ne commenciez. C'est la sortie de secours propre pour une fusion qui a mal tourné.
Pour une fusion déjà terminée, on la défait autrement - voir ci-dessous. Essayez ces commandes dans le terminal playground - un vrai shell dans votre navigateur.
Syntaxe
| Command | What it does |
|---|---|
git merge --abort | Annule une fusion en conflit et restaure l'état d'avant la fusion |
git reset --merge | Équivalent plus ancien - abandonne et réinitialise la fusion |
git merge --quit | Quitte la fusion mais conserve l'arbre de travail tel quel |
Défaire une fusion déjà terminée
Différent d'un abandon - le commit de fusion existe déjà.
| Situation | Command |
|---|---|
| La fusion est locale, non poussée | git reset --hard ORIG_HEAD |
| La fusion est déjà poussée | git revert -m 1 <merge-hash> |
FAQ sur l'abandon d'une fusion Git
Comment annuler une fusion en cours ?
Exécutez
git merge --abort. Si une fusion s'est arrêtée à cause de conflits et que vous ne voulez pas les résoudre, cela annule toute l'opération et ramène votre branche et votre arbre de travail exactement dans l'état où ils étaient avant le début de la fusion.Quelle est la différence entre git merge --abort et git reset --merge ?
Ils font essentiellement le même travail - annuler une fusion en cours et restaurer l'état d'avant la fusion.
git merge --abort est la commande moderne, conçue à cet effet ; git reset --merge est l'ancienne méthode qui fonctionne encore. Préférez git merge --abort pour plus de clarté.Comment défaire une fusion déjà terminée ?
Ce n'est pas un abandon, car le commit de fusion existe déjà. Si la fusion n'est que locale,
git reset --hard ORIG_HEAD ramène la branche là où elle était avant la fusion - cela fonctionne aussi après un fast-forward, là où HEAD~1 ne le ferait pas. Cela supprime le travail non validé, alors vérifiez d'abord git status. Si vous avez déjà poussé la fusion, utilisez git revert -m 1 <merge-hash> pour l'annuler sans réécrire l'historique partagé.Abandonner une fusion va-t-il faire perdre mes autres modifications ?
git merge --abort restaure l'état juste avant la fusion, donc les modifications de la fusion sont abandonnées, mais votre propre travail validé reste intact. Si vous aviez des modifications non validées avant de commencer la fusion, validez-les ou mettez-les de côté avec stash d'abord - l'abandon restaure l'état du commit d'avant la fusion.Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter
git merge --abort dans un vrai shell dans votre navigateur - rien à installer. Le cours Git interactif et gratuit de Coddy couvre aussi la fusion et la résolution de conflits étape par étape.