Was ist Git Interactive Rebase 2026?
Git Interactive Rebase ist der Modus des git rebase Befehls, der eine bearbeitbare Todo Liste mit allen betroffenen Commits öffnet. Entwickler entscheiden Commit für Commit, ob dieser behalten, zusammengefasst, umbenannt, aufgeteilt oder verworfen wird. Das Ergebnis ist eine saubere, logisch aufgebaute Commit Historie für den Pull Request.
Wann sollte man Interactive Rebase in PHP Projekten 2026 verwenden?
Immer dann, wenn ein Feature Branch vor dem Merge in main oder develop aufgeräumt werden soll. Besonders sinnvoll nach Rector Refactorings, PHPStan Upgrades oder grösseren Symfony Migrationen, bei denen viele kleine Zwischen Commits entstehen. Für Solo Branches ohne geteilte Historie ist Rebase das Werkzeug der Wahl.
Was ist der Unterschied zwischen squash und fixup 2026?
Squash fasst zwei Commits zusammen und öffnet einen Editor, um beide Commit Nachrichten zu einer neuen zu kombinieren. Fixup fasst ebenfalls zusammen, verwirft dabei aber die Commit Nachricht des gefolgerten Commits komplett. Fixup eignet sich perfekt für kleine Korrekturen wie Fix Typo oder WIP Commits.
Wie vermeidet man Merge Konflikte beim Interactive Rebase 2026?
Durch häufiges Rebasen des Feature Branches gegen die aktuelle main. Je kleiner die Distanz zwischen Branch und Basis, desto seltener und kleiner die Konflikte. Atomare Commits mit klar abgegrenzten Änderungen reduzieren zusätzlich die Konflikt Wahrscheinlichkeit. Tools wie git rerere merken sich einmal gelöste Konflikte und wenden sie automatisch wieder an.
Welche Commands kennt Git Interactive Rebase 2026?
Die sechs Kernkommandos sind pick, reword, edit, squash, fixup und drop. Ergänzt durch exec für Shell Kommandos zwischen Commits und break für manuelle Pausen. Pick übernimmt einen Commit unverändert, reword ändert nur die Nachricht, edit pausiert den Rebase für manuelle Eingriffe.
Warum niemals öffentliche Branches rebasen?
Interactive Rebase erzeugt neue Commit Hashes. Wer auf Basis der alten Commits gearbeitet hat, bekommt beim nächsten Pull zwei divergierende Historien. Das führt zu chaotischen Merge Konflikten und potenziell verlorenen Änderungen. Die goldene Regel: Nur private, noch nicht geteilte Commits mit Interactive Rebase umschreiben.
Wie bricht man einen Rebase sicher ab?
Mit git rebase --abort wird der Rebase gestoppt und der Branch auf den Ausgangszustand zurückgesetzt. Alle aufgelösten Konflikte gehen verloren, aber der Branch bleibt intakt. Bei laufendem Rebase gibt git status jederzeit Auskunft über den aktuellen Stand und die nächsten Schritte.
Was ist force with lease und wann wird es benötigt?
Force with lease ist eine sichere Variante von git push force. Sie überschreibt den Remote Branch nur, wenn er noch im erwarteten Zustand ist. Pusht ein Kollege zwischenzeitlich, schlägt der Push fehl. Nach einem Interactive Rebase auf einem gepushten Branch ist force with lease der Standard statt eines blinden force.
Wie splittet man einen grossen Commit in mehrere kleine?
Im Interactive Rebase den Commit mit edit markieren. Sobald der Rebase pausiert, git reset HEAD^ ausführen, um die Änderungen zu entstagen. Dann einzelne Teile per git add und git commit erneut als separate Commits einchecken. Mit git rebase --continue wird der Rebase abgeschlossen.
Kann man einen Rebase rückgängig machen?
Ja, über git reflog. Der Reflog protokolliert alle HEAD Bewegungen, auch solche, die durch Rebase entstehen. Mit git reset --hard HEAD@{N} lässt sich der Branch auf einen Zustand vor dem Rebase zurücksetzen. Der Reflog ist das wichtigste Sicherheitsnetz im Umgang mit Rebase.
Wie konfiguriert man den Editor für Interactive Rebase?
Per git config --global core.editor wird der Standard Editor gesetzt. Empfehlenswert sind VS Code mit dem Wait Flag, Vim oder Nano. Der Wait Flag ist wichtig, damit Git auf das Speichern der Todo Liste wartet, bevor der Rebase startet. Ohne Wait Flag scheitert der Rebase mit einem Fehler zur fehlenden Todo Datei.
Was bedeutet autosquash in Git?
Mit git commit --fixup oder --squash und anschliessendem git rebase -i --autosquash ordnet Git automatisch Commits zu ihren Vorgängern zu. Das spart manuelles Sortieren der Todo Liste und ist perfekt für den Workflow, bei dem während der Entwicklung kleine Korrekturen gezielt als Fixup markiert werden.