Das folgende Beispiel zeigt die Möglichkeiten auf, die ein interaktives git rebase eröffnet.
Ausgangslage
In der Entwicklung gibt es den master-Zweig. Davon wurde in der Vergangenheit der r2-Zweig abgeleitet, der für ein besonderes Release genutzt werden soll. Nebenher wurden bereits zwei Features in den Zweigen T1 und T2 entwickelt. Dieser Zustand kann mit dem Script prepare-repo.sh erzeugt werden.

Commits übertragen
Das Feature aus dem Zweig T2 soll in den Release-Zweig r2 übertragen werden. Dafür kann der Befehl git rebase -i --onto r2 branchPoint genutzt werden. Es erscheint der Vorschlag der Commits, die gewollten Commits werden ausgewählt:
Vorgeschlagene Commits:
, Gewünschte Commits: 
Es entsteht folgender (unerwünschter) Zustand:

Hilfszweig verwenden
Leichter geht es, erst einen Zwischenzweig anzulegen und damit zu arbeiten:
git branch r2WithT2 T2 git checkout r2WithT2 git rebase -i --onto r2 branchPoint r2WithT2
Das Ergebnis zeigt schon die richtige Grundlage:

Aufräumen
Die Zweige werden jetzt noch angeordnet:
git checkout r2 git merge --ff r2WithT2 git branch -D r2WithT2
Und das gewünschte Ergebnis ist erreicht:

Viele Tipps dazu gibt es bei https://learngitbranching.js.org/.
| Attachment | Size |
|---|---|
| Script zur Vorbereitung des Repositories | 1.44 KB |