2013-04-25 112 views
1

在Git中,如何應用程序提交的「DE」如何將一系列提交添加到另一個分支?

master  A-B 
       \ 
py3-version  C-D-…-E 

返回到主,從而獲得

master  A-B - <D patch applied> - <…> - <E patch applied> 
       \ 
py3-version  C-D-…-E 

我想這樣做,因爲master是一個Python版本2, C是自動生成的(通過2to3)生成的Python 3版本,我需要改進(DE)。現在,我想將改進DE放回到主分支上(並最終忘記將從新主分支重新生成的Cpy3-version)。如何才能做到這一點?

+1

這個答案可能會有幫助:http://stackoverflow.com/a/16212454/1615903 – 1615903 2013-04-25 12:10:10

+0

@ user1615903:完美的,的確,謝謝你!我曾嘗試過使用舊版git嘗試'git cherry-pick ',並認爲它不起作用,因此上述問題。很高興知道它的作品,現在! – EOL 2013-04-25 13:47:43

回答

3

這就是所謂的git的行話cherry-picking,在那裏你可以從一個分支選擇性導入改變成另一種:

git checkout master 
git cherry-pick py3-version~10..py3-version 

,這將挑選近10個提交從「PY 3版」分支。

如果發生衝突,系統會提示您手動解決它們。然後你應該繼續用git cherry-pick --continue(或git cherry-pick --abort,如果出現問題)挑選櫻桃。

+0

我想你的意思是'git cherry-pick py3-version〜2 py3-version〜1',不是嗎?我更新了這個問題,明確表示它實際上比兩個提交更普遍。我猜想使用範圍'py3-version〜10..py3-version〜1'是要走的路,不是嗎? – EOL 2013-04-25 13:47:07

+0

PS:'py23-version〜10'是最後一個*未應用*補丁。 – EOL 2013-04-25 15:05:05

+0

是的,抱歉的錯字(更新答案是正確的) – 2013-04-25 16:46:51

相關問題