Git Zusammenführung rückgängig machen
In diesem Tutorial erfahren Sie, wie Sie eine Zusammenführung in Git rückgängig machen.
In Git führen wir einen Zweig mit einem anderen zusammen, um Änderungen aus dem anderen Zweig in den HEAD
des aktuellen Zweigs zu integrieren.
Manchmal möchten wir diese Zusammenführung möglicherweise rückgängig machen. Wir können den Git-Befehl git reset
verwenden, um einen Git-Merge rückgängig zu machen.
Wir werden dies nun an einem Beispiel veranschaulichen.
Verwenden des git reset
, um eine Zusammenführung in Git rückgängig zu machen
Angenommen, wir haben einen Zweig zusammengeführt, nämlich. feature1
mit dem main
-Branch, um die Änderungen aus diesem Branch in den main
-Branch zu integrieren.
Jetzt entscheiden wir uns, diese Zusammenführung rückgängig zu machen. Dazu können wir git reset
verwenden.
Zuerst müssen wir den commit sha
finden, der sich vor dem Merge aus dem Log in Git befindet. Dazu können wir den Befehl git log
verwenden.
Wir werden den Befehl git log
wie folgt ausführen.
$ git log --oneline
0e25143 Merge branch 'feature1'
23ad9ad Add the initial code base
Wir können sehen, dass 0e25143
der commit sha
der Zusammenführung von feature1
-Zweigs in den main
-Zweig ist. Der 23ad9ad
ist der commit sha
des Commits vor dem Mergen des Zweigs feature1
.
Wir verwenden den Befehl git reset
mit der Option --hard
, um den Branch main
auf den Zustand vor dem Merge zurückzusetzen.
Die Syntax des Befehls git reset
ist unten.
git reset --hard commit_sha_before_merge
Wir werden nun den git reset
wie folgt ausführen.
$ git reset --hard 23ad9ad
Somit haben wir jetzt die Zusammenführung rückgängig gemacht (d. h. den HEAD
des aktuellen Zweigs zurückgesetzt, nämlich. main
zum Commit vor dem Merge.
Bitte beachten Sie, dass alle nicht festgeschriebenen Änderungen oder nicht zwischengespeicherten Änderungen nach Ausführung des oben angegebenen git reset
-Befehls verloren gehen.
Wir können den Befehl git reset
auch wie folgt verwenden, insbesondere wenn der letzte Commit vom Merge stammt.
$ git reset --hard HEAD~1
Es setzt den HEAD
des aktuellen Zweigs um einen Commit zurück.
Ähnlich können wir auch wie folgt vorgehen.
$ git reset --hard ORIG_HEAD
Der ORIG_HEAD
zeigt auf den Commit, bevor der Merge stattfindet.
Eine sicherere Option ist die Verwendung der Option --merge
mit git reset
wie folgt.
$ git reset --merge ORIG_HEAD
Die Option --merge
mit dem Befehl git reset
bewirkt, dass der Index zurückgesetzt und die Dateien aktualisiert werden, die sich zwischen dem Commit und dem HEAD
unterscheiden; aber es behält die Änderungen der Dateien bei, die sich zwischen dem Index und dem Arbeitsbaum unterscheiden (d. h. die Änderungen, die noch nicht zum Index hinzugefügt wurden).
Verwandter Artikel - Git Reset
- Eine Git-Zusammenführung mit Konflikten rückgängig machen
- Machen Sie den Development-Branch mit dem Master-Branch identisch
- Unterschied zwischen den Git-Befehlen `Reset`, `Revert` und `Checkout`.
- Unterschied zwischen Git RM --Cached und Git Reset File
- Verschiedene Methoden zum Entfernen lokaler Git-Änderungen
- Änderungen in Git rückgängig machen