2016-05-16 7 views
0

Ich habe ein Repo in Git, in dem ich begann in einem neuen Zweig zu arbeiten, um eine Funktion zu entwickeln. Als es halb fertig war, bemerkte ich einen Fehler, den ich anschraubte. Aber anstatt den Hotfix zu beauftragen, den Entwicklungszweig zu meistern und zu refinanzieren, engagierte ich mich in der Entwicklungsabteilung. Das ist mehrmals hintereinander passiert, und jetzt erkenne ich meinen Fehler.Split Zweig in zwei Filialen/Merge einen Zweig selektiv

Ich möchte einen anderen Hotfix über Master, aber der Hotfix hängt von den vorherigen Hotfixes, und ich kann den Entwicklungszweig nicht vollständig zusammenführen, da es eine Tonne von ungeprüften Änderungen gibt.

Also, hier ist meine Frage: wie kann ich nur diese Commits einschließlich Hotfixes zu meistern, während die ungeprüften Commits in der Entwicklung Zweig verlassen?

Um genauer zu sein, die Commits, die ich zusammenführen möchte und diejenigen, die ich in dem anderen Zweig beibehalten möchte, sind interkaliert.

Grafisch sieht meine Repo wie diese, wo H sind Hotfixes und D ungetestet Commits:

devbranch  D1 - H1 - D2 - H2 
      /
master A - B 

Und ich will es wie folgt aussehen:

devbranch    D1 - D2 
        /
master A - B - H1 - H2 

Antwort

1

Kirsche holen die Commits Sie wollen zu meistern und dann Ihren Feature-Zweig auf den neuen Master zu rebasen.

git checkout master 
git cherry-pick H1 
git cherry-pick H2 
git checkout devbranch 
git rebase master 
+0

Würde nicht Kirschen pflücken Kopien von H1 und H2 in devbranch lassen? – Jsevillamol

+1

@Jsevillamol: Es würde, aber sie werden in der Rebase verschwinden. – choroba