2012-10-14 79 views
0

我對本地存儲庫中的上游項目做了一些更改。我原本平淡地將上游回購複製到我的本地項目中。現在我想抓住一系列提交併將其應用於上游回購。我可以用補丁來做到這一點,但我想知道是否可以使用子樹合併來完成此操作。Git:合併一系列本地提交到子樹分支

所以,更具體:

# project structure 
root 
    projectB 
    ... 

# history 
HEAD 
C 
B 
A 

如果我添加項目B的回購作爲遠程結賬它的一個分支,我該如何合併改變B和A到這個分支,離開落後於其他變化我主要回購,最後推動分支回到projectB的遠程?

想法?

+1

採摘櫻桃是很有可能你在找什麼 http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into -otherother-branch – Patrick

回答

1

子樹分裂應該做你想做的。

git subtree split --prefix=projectB --rejoin --branch=project-B-split 

將創建一個名爲project-B-split的新分支,其中包含僅影響projectB內文件的提交。這應該是推薦給projectB的主人 - 經過一些合適的重新綁定和(可能),如帕特里克在評論中所建議的一些櫻桃採摘,如果你沒有一個乾淨的副本。這取決於你最初如何獲得projectB源代碼 - 你是否特別將自己的歷史記錄帶入了你的repo。

+0

+1我將在下次參與該項目時檢查這一點。我會確認,如果這是我正在尋找的(聽起來很有希望) –

相關問題