我正在处理的Git存储库有两个主要分支alpha
和beta
,两者都相似且都在积极处理。当我正在处理某个功能时,需要将其提交到两个分支。尽管分支的内容几乎相同,但alpha
和beta
都没有共同的祖先。到目前为止,这一切都是我公司的要求;我无能为力。
我对如何将我在其中一个分支上的功能分支上执行的操作复制到另一个分支上的功能分支感兴趣。
目前,我的工作流程是在featA
关闭功能分支alpha
,并定期从featA
挑选提交到单独的功能分支featB
off { {1}}。这会产生一个类似于下面的提交树:
beta
此时,我正在考虑将A---B---C---E---F (featA)
\
D (alpha)
A'--B'--C'--E' (featB)
\
D' (beta)
和挑选提交featB
签出到该分支上。
这个过程通常可行,但是相当费力:我在一个分支上做的任何事情都需要在另一个分支上重复。忘记这样做可能会产生导致错误的不一致,并且由于(例如)提交F
和B
之间没有记录的相关性,因此追踪此类错误并非易事。
因为没有共同的父提交,我们偶尔会对B'
或alpha
中不应复制的提交进行提交,我认为我不能使用beta
把一个分支上的提交拉到另一个分支上。
是否有一些工作流程改进或自动化可以将git merge
上的操作复制到其他某个分支featA
?
答案 0 :(得分:0)
使用git cherry-pick
将提交复制到另一个分支。
http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html