Question Comment annuler une fusion Git avec des conflits


Je suis sur une branche mybranch1. mybranch2 est fourchu de mybranch1 et des modifications ont été apportées mybranch2.

Ensuite, pendant que mybranch1, J'ai fait git merge --no-commit mybranch2 Cela montre qu'il y avait des conflits lors de la fusion.

Maintenant, je veux tout défausser (le merge commande) de sorte que mybranch1 est de retour à ce qu'il était avant. Je n'ai aucune idée de comment j'y vais.


628
2018-04-21 08:20


origine


Réponses:


Dernier Git:

git merge --abort

Cela tente de réinitialiser votre copie de travail à l'état dans lequel il était avant la fusion. Cela signifie qu'il doit restaurer les modifications non validées avant la fusion, bien qu'il ne puisse pas toujours le faire de manière fiable. En général, vous ne devriez pas fusionner avec les modifications non validées.

Avant la version 1.7.4:

git reset --merge

Ceci est une syntaxe plus ancienne mais fait la même chose que ci-dessus.

Avant la version 1.6.2:

git reset --hard

qui supprime toutes les modifications non validées, y compris la fusion non validée. Parfois, ce comportement est utile même dans les nouvelles versions de Git qui supportent les commandes ci-dessus.


1104
2018-04-21 08:23



En supposant que vous utilisez le dernier git,

git merge --abort

94
2018-04-21 08:23



En fait, il vaut la peine de remarquer que git merge --abort est seulement équivalent à git reset --merge étant donné que MERGE_HEAD est présent. Cela peut être lu dans la commande git help for merge.

git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present.

Après une fusion échouée, quand il n'y a pas MERGE_HEAD, la fusion échouée peut être annulée avec git reset --merge mais pas nécessairement avec git merge --abort, donc ils ne sont pas seulement ancienne et nouvelle syntaxe pour la même chose.

Personnellement je trouve git reset --merge beaucoup plus utile dans le travail quotidien.


82
2018-06-09 06:45