2013-04-25 116 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

相关问题