997 Stimmen

Rückgängig machen einer Git-Zusammenführung mit Konflikten

Ich bin in einer Filiale mybranch1 . mybranch2 ist ein Abzweig von mybranch1 und Änderungen wurden vorgenommen in mybranch2 .

Dann, während auf mybranch1 , habe ich getan git merge --no-commit mybranch2 Es zeigt, dass es beim Zusammenführen Konflikte gab.

Jetzt möchte ich alles verwerfen (die merge Befehl), so dass mybranch1 ist wieder so, wie sie vorher war. Ich habe keine Ahnung, wie ich das anstellen soll.

1708voto

Daniel Cassidy Punkte 23409

Letzter Git:

git merge --abort

Dadurch wird versucht, Ihre Arbeitskopie auf den Zustand vor der Zusammenführung zurückzusetzen. Das bedeutet, dass alle nicht übertragenen Änderungen von vor dem Zusammenführen wiederhergestellt werden sollten, auch wenn dies nicht immer zuverlässig möglich ist. Im Allgemeinen sollten Sie sowieso nicht mit unbestätigten Änderungen zusammenführen.

Vor der Version 1.7.4:

git reset --merge

Dies ist eine ältere Syntax, die aber dasselbe bewirkt wie die obige.

Vor der Version 1.6.2:

git reset --hard

wodurch alle nicht übertragenen Änderungen, einschließlich der nicht übertragenen Zusammenführung, entfernt werden. Manchmal ist dieses Verhalten auch in neueren Versionen von Git nützlich, die die oben genannten Befehle unterstützen.

162voto

Martin G Punkte 15799

In der Tat ist es bemerkenswert, dass git merge --abort ist nur gleichwertig mit git reset --merge angesichts der Tatsache, dass MERGE_HEAD vorhanden ist. Dies kann in der Git-Hilfe für den Merge-Befehl nachgelesen werden.

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

Nach einer fehlgeschlagenen Zusammenführung, wenn es keine MERGE_HEAD kann die fehlgeschlagene Zusammenführung rückgängig gemacht werden mit git reset --merge aber nicht unbedingt mit git merge --abort , es handelt sich also nicht nur um eine alte und eine neue Syntax für dieselbe Sache .

Persönlich finde ich git reset --merge viel nützlicher für die tägliche Arbeit.

114voto

Adam Dymitruk Punkte 116211

Vorausgesetzt, Sie verwenden die neueste Git-Version,

git merge --abort

70voto

Hanzla Habib Punkte 2607

Bei Verwendung der neuesten Git,

git merge --abort

andernfalls wird dies die Arbeit in älteren Git-Versionen erledigen

git reset --merge

oder

git reset --hard

9voto

Es gibt zwei Möglichkeiten, die Zusammenführung per Befehl rückgängig zu machen

git merge --abort

oder

können Sie vorübergehend zu Ihrem vorherigen Commit-Status zurückkehren, indem Sie den Befehl

git checkout 0d1d7fc32

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X