Je suis en succursale mybranch1
. mybranch2
est bifurqué mybranch1
et des modifications ont été apportées mybranch2
.
Ensuite, pendant que mybranch1
je l'ai fait, git merge --no-commit mybranch2
cela montre qu'il y a eu des conflits lors de la fusion.
Maintenant, je veux tout jeter (la merge
commande) pour que ça mybranch1
revienne à ce qu'elle était avant. Je n'ai aucune idée de comment je dois procéder.
git
git-merge
git-merge-conflict
Anshul
la source
la source
Réponses:
Dernier Git:
Cela tente de réinitialiser votre copie de travail dans l'état dans lequel elle se trouvait avant la fusion. Cela signifie qu'il doit restaurer toutes les modifications non validées d'avant la fusion, bien qu'il ne puisse pas toujours le faire de manière fiable. En règle générale, vous ne devez de toute façon pas fusionner avec des modifications non validées.
Avant la version 1.7.4:
Cette syntaxe est plus ancienne mais fait la même chose que ci-dessus.
Avant la version 1.6.2:
qui supprime toutes les modifications non validées, y compris la fusion non validée. Parfois, ce comportement est utile même dans les versions plus récentes de Git qui prennent en charge les commandes ci-dessus.
la source
git reset --merge
même dans les versions plus récentes. J'ai eu unegit merge --abort
erreur (ne faisant aucun changement) oùgit reset --merge
réussit (et fait la bonne chose) dans git 2.2.1.git merge --abort
suivi de lagit reset --merge
sortie automatique du conflit de l'éclatement de ma cachette.git merge --abort
fonctionne généralement pour moi, mais je me suis retrouvé dans une situation où j'ai vérifié dans un état HEAD détaché, et l'un de mes fichiers avait un état "les deux modifiés". Je voulais tout jeter et revenir à une succursale, je le devaisgit reset --hard
,git merge --abort
m'a dit qu'il n'y avait pas de fusion à abandonner, (MERGE_HEAD manquant).git merge --abort
n'est pas en mesure de vous ramener à votre état précédent, et dans ce cas, la "syntaxe plus ancienne"git reset --hard
fait l'affaire.En fait, il est en aperçoive une valeur qui
git merge --abort
est équivalente à seulementgit reset --merge
étant donné queMERGE_HEAD
est présente. Cela peut être lu dans la commande git help for merge.Après une fusion qui a échoué, quand il n'y en a pas
MERGE_HEAD
, la fusion qui a échoué peut être annuléegit reset --merge
mais pas nécessairement avecgit merge --abort
, donc ils ne sont pas seulement une ancienne et une nouvelle syntaxe pour la même chose .Personnellement, je trouve
git reset --merge
beaucoup plus utile dans le travail quotidien.la source
git stash apply
une mauvaise branche et jegit merge --abort
n'ai rien fait (nonMERGE_HEAD
), tout en faisantgit reset --merge
l'affaire.git merge --abort
c'est la nouvelle commande pourgit reset --merge
et j'ai rencontré le même problème que @geomaster c'était super utile merci!En supposant que vous utilisez le dernier git,
la source
Il y a deux choses que vous pouvez faire d'abord annuler la fusion par commande
ou
vous pouvez revenir temporairement à votre état de validation précédent par commande
la source
Sourcetree
Si vous ne validez pas votre fusion, double-cliquez simplement sur une autre branche (= checkout) et lorsque sourcetree vous demandera de supprimer toutes les modifications, puis acceptez
la source