Von Gast (nicht überprüft) , 29 April 2026

Übersicht

git rebase -i <upstream>
git rebase -i --root

Beschreibung

Interaktives Rebase öffnet einen Editor mit der Liste der zu rebasenden Commits, jeder vorangestellt mit einer Aktion: pick, reword, edit, squash, fixup, drop, exec oder break. Durch Bearbeiten dieser Liste können Sie Commits umordnen, kombinieren, aufteilen oder entfernen, bevor sie upstream gehen. Es ist das Arbeitspferd zum "Aufräumen der Historie vor dem Pushen".

Kombiniert mit --autosquash werden via git commit --fixup erzeugte Fixup-Commits automatisch neben ihren Zielen angeordnet und zum Squashen markiert. Das --rebase-merges-Flag bewahrt Merge-Commits während des interaktiven Rebase.

Im täglichen Einsatz integriert sich git rebase -i eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git rebase -i --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.

Zu verstehen, wie git rebase -i mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git rebase -i hilft, alle drei zu vermeiden.

Häufige Optionen

OptionBeschreibung
-iInteraktiver Editor für den Rebase-Plan.
--autosquashOrdnet Fixup/Squash-Commits automatisch an.
--rootRebaset vom allerersten Commit.
-x <cmd>Führt einen Befehl zwischen Commits aus (z. B. Tests).
-r, --rebase-mergesBewahrt Merge-Commits.
--continueSetzt nach Konfliktauflösung fort.
--abortBricht vollständig ab.

Beispiele

git rebase -i HEAD~5
    # Die letzten 5 Commits bearbeiten

    git commit --fixup abc123
    git rebase -i --autosquash abc123^
    # Einen Fixup hinzufügen, dann beim Rebase auto-squashen

    git rebase -i -x "npm test" main
    # Tests nach jedem Commit während des Rebase ausführen

    git rebase -i --root
    # Historie ab dem ersten Commit umschreiben

Häufige Fehler

Eine leere Rebase-Todo-Liste zu speichern bricht die Operation ab — lassen Sie mindestens eine pick-Zeile stehen. Zu viele Commits als edit zu markieren erzeugt eine mühsame Sequenz von Stopps; bevorzugen Sie squash oder fixup, wenn Sie nur kombinieren wollen. Rebasen Sie niemals interaktiv Commits, die bereits gepusht und geteilt sind.

Verwandte Befehle

git rebase, git commit --fixup, git cherry-pick, git reflog