Ich bin am Zweig mybranch1
. mybranch2
wurde von mybranch1
gespalten und Änderungen wurden in mybranch2
vorgenommen.
Dann habe ich bei mybranch1
git merge --no-commit mybranch2
ausgeführt. Dies zeigt, dass beim Zusammenführen Konflikte aufgetreten sind.
Jetzt möchte ich alles verwerfen (den Befehl merge
), damit mybranch1
wieder zu dem zurückkehrt, was es vorher war. Ich habe keine Ahnung, wie ich das anstellen soll.
Neuester Git:
git merge --abort
Dadurch wird versucht, Ihre Arbeitskopie auf den Zustand vor dem Zusammenführen zurückzusetzen. 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 nicht mit nicht festgeschriebenen Änderungen zusammengeführt werden.
Vor Version 1.7.4:
git reset --merge
Dies ist eine ältere Syntax, entspricht jedoch der oben beschriebenen.
Vor Version 1.6.2:
git reset --hard
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.
Tatsächlich ist es erwähnenswert, dass git merge --abort
nur git reset --merge
entspricht, vorausgesetzt, dass MERGE_HEAD
vorhanden ist. Dies kann in der Git-Hilfe zum Merge-Befehl nachgelesen werden.
git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present.
Wenn nach einer fehlgeschlagenen Zusammenführung kein MERGE_HEAD
vorhanden ist, kann die fehlgeschlagene Zusammenführung mit git reset --merge
rückgängig gemacht werden, jedoch nicht unbedingt mit git merge --abort
, es handelt sich also nicht nur um alte und neue Syntax für das gleiche.
Persönlich finde ich git reset --merge
im Arbeitsalltag viel nützlicher.
Angenommen, Sie verwenden den neuesten Git,
git merge --abort