Git Zusammenführung rückgängig machen

Azhar Bashir Khan 6 Februar 2022
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

Verwandter Artikel - Git Merge