Menu
Coddy logo textTech

Git Rebase vs Merge

Zuletzt aktualisiert

Sowohl git merge als auch git rebase führen die Arbeit eines Branches in einen anderen zusammen. git merge verbindet die beiden Historien mit einem Merge-Commit und bewahrt genau, was passiert ist. git rebase spielt deine Commits einen nach dem anderen oben auf den anderen Branch neu ab und erzeugt eine saubere, lineare Historie - schreibt dabei aber deine Commits um.

Die goldene Regel: Rebase niemals Commits, die andere bereits gepullt haben. Probiere beides im Terminal-Playground aus - eine echte Shell in deinem Browser.

Nebeneinander

Behaviorgit mergegit rebase
Form der HistorieVerzweigt, mit einem Merge-CommitLinear
Schreibt Commits umNeinJa
Sicher auf geteilten BranchesJaNein
Bewahrt die exakte HistorieJaNein
Leicht nachzuvollziehen, wann etwas gemergt wurdeJaSchwieriger

Syntax

CommandWhat it does
git merge featureMerge feature in den aktuellen Branch
git merge --no-ff featureErstellt immer einen Merge-Commit
git rebase mainSpielt die Commits des aktuellen Branches auf main neu ab
git rebase -i HEAD~3Bearbeitet die letzten 3 Commits interaktiv
git rebase --abortBricht einen laufenden Rebase ab

Git rebase vs merge FAQ

Was ist der Unterschied zwischen git rebase und git merge?
git merge kombiniert zwei Branches, indem es einen neuen Merge-Commit erstellt, der ihre Historien verbindet, und bewahrt so den exakten Verlauf dessen, was passiert ist. git rebase hingegen verschiebt deine Commits, sodass sie oben auf einem anderen Branch neu abgespielt werden, und erzeugt eine geradlinige Historie, schreibt diese Commits aber mit neuen Hashes um. Merge bewahrt die Historie; rebase schreibt sie zugunsten der Sauberkeit um.
Wann sollte ich merge und wann rebase verwenden?
Verwende merge, um einen fertigen Branch (besonders einen geteilten) zu integrieren - es ist sicher und nicht destruktiv. Verwende rebase, um deine eigenen lokalen Commits aufzuräumen, bevor du sie teilst, oder um einen Feature-Branch auf den neuesten main zu aktualisieren, für eine saubere Historie. Viele Teams rebasen lokal und mergen dann in main.
Was ist die goldene Regel des Rebasens?
Rebase niemals Commits, auf denen andere bereits ihre Arbeit aufgebaut haben - typischerweise alles, was du auf einen geteilten Branch gepusht hast. Da Rebase Commits umschreibt, zwingt es alle anderen, eine auseinandergelaufene Historie in Einklang zu bringen. Rebase frei auf lokalen, ungepushten Commits; verwende merge (oder revert) für alles, was bereits öffentlich ist.
Verursacht Rebase oder Merge weniger Konflikte?
Keines vermeidet Konflikte, aber sie treten unterschiedlich zutage. Ein Merge löst alle Konflikte auf einmal, im Merge-Commit. Ein Rebase kann dich bitten, Konflikte Commit für Commit zu lösen, während jeder neu abgespielt wird. Der Gesamtaufwand ist ähnlich; der Rebase verteilt ihn nur.
Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um git merge und git rebase in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt Mergen und Rebasen ebenfalls Schritt für Schritt.
Coddy programming languages illustration

Lerne Git mit Coddy

LOS GEHT'S