2

我正在处理的 Git 存储库有两个主要分支alphabeta,它们都很相似,并且都在积极处理中。当我在处理一个特性时,它需要被提交到两个分支中。alpha尽管分支的内容几乎相同,但两者并没有共同的祖先beta。到目前为止,这都是我公司规定的;我对此无能为力。

我对如何将我在功能分支上执行的操作从这些分支之一复制到另一个功能分支感兴趣。

细节

目前,我的工作流程是在一个特性分支上工作featA,并定期从一个单独的特性分支上挑选alpha提交。这导致提交树看起来像下面这样:featAfeatBbeta

A---B---C---E---F (featA)
         \
          D (alpha)

A'--B'--C'--E' (featB)
         \
          D' (beta)

在这一点上,我将考虑签出featB并挑选提交F到该分支上。

这个过程通常可以正常工作,但是相当费力:我在一个分支上所做的任何事情都需要在另一个分支上重复。忘记这样做会产生导致错误的不一致,并且由于(例如)提交B和之间没有记录的相关性B',因此追踪此类错误并非易事。

因为没有共同的父提交,而且我们偶尔会向其中一个提交alphabeta不应该复制的提交,我认为我不能使用git merge将一个分支上的提交拉到另一个分支。

我可以做一些工作流程改进或自动化来将操作复制featA到其他分支featB吗?

4

1 回答 1

0

用于git cherry-pick将提交复制到另一个分支。

http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html

于 2012-07-31T16:16:24.693 回答