Wir verwenden git rebase --onto
, um Commits von einem Zweig zu einem anderen Zweig abzuholen. Lassen Sie uns aus Gründen der Einfachheit den Zweig zum Release Branch entwickeln.Git Rebase auf mit mehreren Revisionssets
1----A----B----C----D----2----3----E----F---G----H----4----5----6 develop
Aus der oben genannten ich brauche von in Release entwickeln alle „Zeichen“ Revisionen zu fusionieren, ist es wichtig zu beachten, dass ich die numerischen Revisionen ignorieren müssen.
Also, was wir tun, ist die Rebase für jede Gruppierung auf. Zum Beispiel in der oben gibt es zwei Gruppen A bis D und E bis G.
git rebase --onto release 1 D #rebase the first range of revisions from the develop branch and base it on the release branch
git rebase --onto release 3 H #rebase the second range of revisions from the develop branch and base it on the release branch.
Das Problem ist, dass für jede Gruppierung müssen wir diesen Befehl ausführen, die nicht bequem ist.
Gibt es eine Möglichkeit, dass ich git rebase --onto
einmal laufen konnte und alle erforderlichen Änderungen dann in einem einzigen Befehl angeben
Es gibt eine Menge Möglichkeiten, fusionieren, dies zu tun, was Sie haben hier ist nur die unbequemste. Am einfachsten ist möglicherweise interaktive Rebase und löschen Sie diejenigen, die Sie nicht möchten. – jthill
In der Tat, nur 'git Rebase -i - auf Release 1' gefolgt von der Auswahl der Patches, die Sie wollen, wird funktionieren, wenn es Ihnen nichts ausmacht, es in EDITOR statt in einer Shell zu tun. – amalloy
Rebase ist das falsche Werkzeug für die Auswahl guter ("Cherry") Commits von einem Zweig in einen anderen. Der Befehl "git cherry-pick" macht genau das: Sie identifizieren die zu pflückenden Kirschen und sie nehmen sie auf (kopieren). – torek