Was Sie erreichen werden
Sie werden einen Feature-Branch nehmen, der hinter main zuruckgefallen ist, ihn sauber auf die neue Spitze rebasen, eventuelle Konflikte losen und den rebasten Branch zuruckpushen.
Warum Rebase, nicht Merge?
Wenn Sie main in Ihren Feature-Branch mergen, entstehen zusatzliche Merge-Commits.
Schritt 1: einen Sandbox einrichten
mkdir rebase-tutorial && cd rebase-tutorial
git init
echo "v1" > app.txt
git add app.txt && git commit -m "Initial"
git checkout -b feature/login
echo "login" > login.txt
git add login.txt && git commit -m "Add login"
git checkout main
echo "v2" > app.txt
git commit -am "Update app to v2"
Schritt 2: rebasen
git checkout feature/login
git rebase main
Schritt 3: Konflikte handhaben
git status
git add app.txt
git rebase --continue
git rebase --abort
Schritt 4: verifizieren
git log --oneline --graph
Schritt 5: Push
git push
git push --force-with-lease
Haufige Varianten
git fetch origin
git rebase origin/main
git config --global pull.rebase true
git checkout main && git pull
git checkout feature/login && git rebase main
Interaktiver Rebase
git rebase -i main
Fallstricke und Regeln
- Niemals geteilte Branches rebasen.
--force-with-leaseverwenden.- Konflikte in der Reihenfolge losen.
- Wenn Konflikte uberwaltigend sind, abbrechen.
Wiederherstellung
git reflog
git reset --hard ORIG_HEAD