Annuler une fusion Git

je travaille sur un projet utilisant Git comme VCS. J'ai une branche xyz coupée de la branche principale de master. Après avoir travaillé pendant un certain temps, j'ai commis mon code et pris une traction de la ligne principale de la branche.

Le pull était très bien. J'ai ensuite fusionné le code avec master. Après la fusion, il y a eu des problèmes dans certains fichiers. Je n'ai pas donné le code après la fusion. Est-ce que quelqu'un peut s'il vous plaît guider sur la façon dont je peux avorter cette fusion et apporter ma branche où je travaille actuellement à l'état où elle était avant j'ai fusionné?

33
demandé sur Salman Kazmi 2017-05-18 16:22:04

3 réponses

tant que vous n'avez pas commis, vous pouvez taper

git merge --abort

comme le suggère la ligne de commande.

105
répondu Timothy Truckle 2017-05-18 13:27:35

si vous faites" git status " pendant que vous avez un conflit de fusion, la première chose que git vous montre est comment annuler la fusion.

output of git status while having a merge conflict

8
répondu MLY 2017-10-09 03:26:31

à vrai dire, il y a beaucoup, beaucoup de ressources expliquant comment le faire déjà sur le web:

Git: comment inverser-fusionner un commit?

Git: comment inverser-fusionner un commit?

https://git-scm.com/blog/2010/03/02/undoing-merges.html

donc je suppose que je vais juste résumer quelques-uns de ces:

  1. git revert <merge commit hash>

    Cela crée un commit" revert "supplémentaire disant que vous undid une fusion

  2. git reset --hard <commit hash *before* the merge>

    Cette réinitialisation de l'histoire avant que vous ne fassiez la fusion. Si vous avez des commits après la fusion vous aurez besoin de cherry-pick les sur après.

Mais honnêtement ce guide ici est mieux que rien Je peux expliquer, avec des diagrammes! :)

5
répondu denis.lobanov 2017-05-18 13:28:32