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/.
Anhang | Größe |
---|---|
Script zur Vorbereitung des Repositories | 1.44 KB |