Start·Terminal-Befehle

git rebase

git

Aufruf

git rebase [-i] [--onto <base>] <upstream>

Spielt Ihre Commits auf einer neuen Basis erneut ab; die Hashes ändern sich, also niemals einen Branch rebasen, den andere schon geholt haben — dort mergen.

Häufige Optionen

OptionBedeutung
-iinteractive: reorder, squash, reword, drop commits
--onto <base>move the range onto a different base
--continuecarry on after fixing a conflict
--abortput the branch back exactly as it was
--skipdrop the commit that will not apply
--autostashstash uncommitted work and put it back afterwards
--autosquashapply fixup!/squash! commits automatically

Beispiele

git rebase main

replays your commits on top of main, giving them new hashes

git rebase -i HEAD~3

squash or reword the last three commits

git rebase --abort

cancel a rebase and return to the original branch

Verwirrend ist, dass Rückgängig mehrere Formen hat — den Zeiger eines Branch zu verschieben ist nicht dasselbe wie einen Gegen-Commit zu setzen.

So liest man das

  • Eckige Klammern [ ] markieren einen Teil, den man weglassen kann.
  • Drei Punkte … heißen: mehrere sind erlaubt.
  • Optionen achten auf Groß- und Kleinschreibung — bei manchen Befehlen sind -r und -R verschieden.

Häufige Fragen

Q. Was macht git rebase?

Spielt Ihre Commits auf einer neuen Basis erneut ab; die Hashes ändern sich, also niemals einen Branch rebasen, den andere schon geholt haben — dort mergen.

Q. Wie gibt man ihn ein?

git rebase [-i] [--onto <base>] <upstream> — eckige Klammern markieren, was wegfallen darf.

Q. Wie viele Optionen lohnen sich?

Hier stehen 7; die vollständige Liste steht in man git. Der Befehl gehört zu git.

Verwandte Befehle

man-Seite: man git-rebase