Git: Einen Merge abbrechen
Zuletzt aktualisiert
Wenn ein git merge auf Konflikte stößt und du lieber zurückrudern möchtest, statt sie zu lösen, bricht git merge --abort den Merge ab und stellt deinen Branch exakt in den Zustand zurück, in dem er vor dem Start war. Es ist der saubere Notausgang aus einem Merge, der schiefgelaufen ist.
Einen bereits abgeschlossenen Merge machst du anders rückgängig - siehe unten. Probiere diese Befehle im Terminal-Playground aus - einer echten Shell in deinem Browser.
Syntax
| Command | What it does |
|---|---|
git merge --abort | Bricht einen Merge mit Konflikten ab und stellt den Zustand vor dem Merge wieder her |
git reset --merge | Älteres Äquivalent - bricht den Merge ab und setzt ihn zurück |
git merge --quit | Verlässt den Merge, behält aber den Arbeitsbaum so, wie er ist |
Einen bereits abgeschlossenen Merge rückgängig machen
Anders als das Abbrechen - der Merge-Commit existiert bereits.
| Situation | Command |
|---|---|
| Der Merge ist lokal, nicht gepusht | git reset --hard ORIG_HEAD |
| Der Merge ist bereits gepusht | git revert -m 1 <merge-hash> |
Git Merge abbrechen - FAQ
Wie breche ich einen laufenden Merge ab?
Führe
git merge --abort aus. Wenn ein Merge wegen Konflikten gestoppt hat und du sie nicht lösen möchtest, bricht dies die gesamte Operation ab und bringt deinen Branch und Arbeitsbaum genau in den Zustand zurück, in dem sie vor dem Start des Merge waren.Was ist der Unterschied zwischen git merge --abort und git reset --merge?
Sie erledigen im Wesentlichen dieselbe Aufgabe - einen laufenden Merge abzubrechen und den Zustand vor dem Merge wiederherzustellen.
git merge --abort ist der moderne, eigens dafür gedachte Befehl; git reset --merge ist der ältere Weg, der weiterhin funktioniert. Bevorzuge git merge --abort der Klarheit halber.Wie mache ich einen bereits abgeschlossenen Merge rückgängig?
Das ist kein Abbruch, da der Merge-Commit bereits existiert. Ist der Merge nur lokal, setzt
git reset --hard ORIG_HEAD den Branch dorthin zurück, wo er vor dem Merge stand - das funktioniert auch nach einem Fast-forward, wo HEAD~1 versagen würde. Es verwirft nicht committete Arbeit, prüfe also zuerst git status. Hast du den Merge bereits gepusht, verwende git revert -m 1 <merge-hash>, um ihn rückgängig zu machen, ohne die geteilte Historie umzuschreiben.Gehen beim Abbrechen eines Merge meine anderen Änderungen verloren?
git merge --abort stellt den Zustand von unmittelbar vor dem Merge wieder her, sodass die Änderungen des Merge verworfen werden, deine eigene committete Arbeit aber intakt bleibt. Wenn du vor dem Start des Merge nicht committete Änderungen hattest, committe oder stashe sie zuerst - der Abbruch stellt den Commit-Zustand vor dem Merge wieder her.Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um
git merge --abort in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt auch das Mergen und das Lösen von Konflikten Schritt für Schritt.