EMZETT.
Login

Git rebase

Kurz: Mit git rebase setzt man die Commits eines Branches auf eine neue Basis. Dadurch entsteht eine lineare Historie ohne zusätzliche Merge-Commits.

Genauer: Statt zwei Branches mit einem Merge-Commit zusammenzuführen, nimmt Rebase deine Commits, legt sie kurz beiseite, aktualisiert die Basis auf den neuesten Stand und spielt die Commits danach nacheinander wieder ab. Die Commits bekommen dabei neue Hashes, weil sich ihr Elternteil ändert.

Im Detail

  • Typischer Einsatz: git rebase main auf einem Feature-Branch, damit er die neuesten Änderungen von main enthält.
  • Interaktiv: git rebase -i HEAD~5 erlaubt, Commits zusammenzufassen (squash), umzubenennen, umzusortieren oder zu löschen.
  • Goldene Regel: Nie Commits umschreiben, die schon andere bekommen haben (öffentliche Branches). Sonst weichen die Historien auseinander.
  • Konflikte: Sie treten Commit für Commit auf. Nach der Lösung git rebase --continue, zum Abbrechen git rebase --abort.
  • Merge oder Rebase: Merge bewahrt die echte Historie, Rebase macht sie lesbar. Viele Teams nutzen Rebase lokal und Merge beim Zusammenführen.

Siehe auch: Merge-Konflikte