Ich bin auf einem Ast mybranch1
. mybranch2
wird gegabelt mybranch1
und Änderungen wurden vorgenommen mybranch2
.
Dann habe mybranch1
ich getan. git merge --no-commit mybranch2
Es zeigt, dass es beim Zusammenführen Konflikte gab.
Jetzt möchte ich alles (den merge
Befehl) verwerfen , damit mybranch1
es wieder so ist, wie es vorher war. Ich habe keine Ahnung, wie ich das anstellen soll.
git
git-merge
git-merge-conflict
Anshul
quelle
quelle
Antworten:
Neueste Git:
Dadurch wird versucht, Ihre Arbeitskopie auf den Zustand zurückzusetzen, in dem sie sich vor dem Zusammenführen befand. Das bedeutet, dass nicht festgeschriebene Änderungen vor dem Zusammenführen wiederhergestellt werden sollten, obwohl dies nicht immer zuverlässig möglich ist. Im Allgemeinen sollten Sie ohnehin nicht mit nicht festgeschriebenen Änderungen zusammenführen.
Vor Version 1.7.4:
Dies ist eine ältere Syntax, funktioniert jedoch genauso wie oben.
Vor Version 1.6.2:
Dadurch werden alle nicht festgeschriebenen Änderungen entfernt, einschließlich der nicht festgeschriebenen Zusammenführung. Manchmal ist dieses Verhalten sogar in neueren Versionen von Git nützlich, die die obigen Befehle unterstützen.
quelle
git reset --merge
in neueren Versionen verwenden. Ich habe einengit merge --abort
Fehler gemacht (keine Änderungen vorgenommen), bei demgit reset --merge
es in Git 2.2.1 gelingt (und das Richtige tut).git merge --abort
gefolgt vongit reset --merge
einem automatischen Konflikt, weil ich meinen Vorrat aufgebraucht hatte.git merge --abort
funktioniert normalerweise für mich, aber ich befand mich in einer Situation, in der ich in einem getrennten HEAD-Status ausgecheckt habe und eine meiner Dateien den Status "beide geändert" hatte. Ich verwerfen alles wollte und zu einem Zweig zurück, musste ichgit reset --hard
,git merge --abort
mir gesagt , es gibt keine Zusammenführung abbrechen, (MERGE_HEAD fehlt).git merge --abort
können Sie Ihren vorherigen Status nicht wiederherstellen, und in diesem Fall reicht die "ältere Syntax" ausgit reset --hard
.Eigentlich ist es bemerkenswert , dass
git merge --abort
nur äquivalent istgit reset --merge
daMERGE_HEAD
vorhanden ist. Dies kann in der Git-Hilfe zum Zusammenführen gelesen werden.Nach einer fehlgeschlagenen Zusammenführung kann
MERGE_HEAD
die fehlgeschlagene Zusammenführung rückgängig gemacht werden,git reset --merge
jedoch nicht unbedingt mitgit merge --abort
. Daher handelt es sich nicht nur um alte und neue Syntax für dieselbe Sache .Persönlich finde ich
git reset --merge
viel nützlicher in der täglichen Arbeit.quelle
git stash apply
einem falschen Zweig begann, undgit merge --abort
tat nichts (neinMERGE_HEAD
), während ichgit reset --merge
den Trick machte.git merge --abort
sei der neue Befehl fürgit reset --merge
und ich bin auf das gleiche Problem wie @geomaster gestoßen. Das war super hilfreich, danke!Angenommen, Sie verwenden den neuesten Git.
quelle
Es gibt zwei Dinge, die Sie zuerst tun können, um das Zusammenführen per Befehl rückgängig zu machen
oder
Sie können vorübergehend per Befehl zu Ihrem vorherigen Festschreibungsstatus wechseln
quelle
Sourcetree
Wenn Sie Ihre Zusammenführung nicht festschreiben, doppelklicken Sie einfach auf einen anderen Zweig (= Kasse). Wenn Sie von Sourcetree gefragt werden, ob Sie alle Änderungen verwerfen möchten, stimmen Sie zu
quelle