Menu
Coddy logo textTech

Git Rebase

Zuletzt aktualisiert

git rebase verschiebt die Commits deines Branches, sodass sie oben auf einem anderen Branch neu abgespielt werden, und erzeugt eine gerade, lineare Historie statt eines Merge-Commits. Interaktives Rebase (-i) geht weiter und lässt dich Commits zusammenfassen, umsortieren, bearbeiten oder verwerfen. Da Rebasing Commits umschreibt, mach das nur bei Arbeit, die du noch nicht geteilt hast.

Probiere das im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.

Syntax

CommandWhat it does
git rebase mainSpielt deine Commits oben auf main neu ab
git rebase -i HEAD~3Bearbeitet interaktiv die letzten 3 Commits
git rebase --onto main old newVerschiebt einen Bereich von Commits auf main
git rebase --continueSetzt nach dem Lösen von Konflikten fort
git rebase --abortBricht das Rebase ab und stellt den Branch wieder her
git pull --rebaseMacht pull und rebase statt merge

Schlüsselwörter des interaktiven Rebase

Ändere im Editor, den -i öffnet, pick in eines von diesen.

KeywordWhat it does
pickBehält den Commit
rewordBehält den Commit, bearbeitet seine Nachricht
squashFaltet in den vorherigen Commit, führt Nachrichten zusammen
fixupFaltet ein, verwirft diese Nachricht
dropEntfernt den Commit vollständig

Git rebase FAQ

Was macht git rebase?
Es nimmt die Commits deines aktuellen Branches und spielt sie einen nach dem anderen oben auf einem anderen Branch neu ab, als hättest du deine Arbeit vom neuesten Commit dieses Branches aus begonnen. Das Ergebnis ist eine lineare Historie ohne Merge-Commit. Die Commits werden dabei umgeschrieben (sie erhalten neue Hashes).
Was ist interaktives Rebase?
git rebase -i <base> öffnet einen Editor, der die Commits seit <base> auflistet, in dem du sie umsortieren, mehrere zu einem squashen, Nachrichten reworden, einen Commit editen oder ihn droppen kannst. Es ist das wichtigste Werkzeug, um eine unordentliche Reihe von Commits vor dem Teilen aufzuräumen.
Was ist die goldene Regel des Rebasing?
Rebase niemals Commits, auf denen andere ihre Arbeit bereits aufgebaut haben - typischerweise alles, was in einen geteilten Branch gepusht wurde. Da Rebase Commits umschreibt, zwingt es alle anderen, eine auseinandergelaufene Historie in Einklang zu bringen. Rebase frei bei lokalen, ungepushten Commits; verwende merge oder revert für öffentliche.
Wie behebe oder breche ich ein Rebase mit Konflikten ab?
Wenn ein Rebase bei einem Konflikt stoppt, löse die Dateien, mache git add für sie und führe dann git rebase --continue aus. Verwende git rebase --skip, um den aktuellen Commit zu verwerfen, oder git rebase --abort, um vollständig abzubrechen und den Branch in den Zustand vor dem Start des Rebase zurückzuversetzen.
Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um git rebase in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt Rebasing ebenfalls Schritt für Schritt.
Coddy programming languages illustration

Lerne Git mit Coddy

LOS GEHT'S