Cherry在Git中挑选了一系列提交

时间:2014-10-31 06:36:10

标签: git merge git-cherry-pick

我希望得到一些想法。我有三个分支:

  • 特定
  • 特征分支

master包含通用代码库,因此如果我想稍后分支以创建新类型的实现,我可以轻松地执行此操作。但是现在specific是我的主要开发分支。

所以我将specific分支到feature-branch以测试新功能,一旦我满意,我将feature-branch合并回specific

但有一些提交是specific中特定于实现的提交,我不想将其合并回主服务器。大多数代码都是通用更改,我确实想要合并。

我将feature-branch的约30次更改合并为specific。在这30个中,大约20个我想从specific合并到master

对我来说,最好的方法是什么?

我应该只选择要合并到master的每个提交吗?如果是这样,我应该按照时间倒序顺序(即获得我想要合并的最早的提交,然后是第二个最旧的提交,依此类推 - 将它们全部重新引入master)。

欢迎任何想法。感谢

1 个答案:

答案 0 :(得分:1)

最好(如果你还没有将specific推送到任何远程仓库)到:

  • 使用interactive rebase重新排序specific分支中的提交(master的提交,然后是特定于实现的提交)。
  • 仅将20个第一次提交合并到master(这将是快进合并)
    您可以在这20个提交中的最新提交(git branch tmp SHA1)上创建临时分支,并合并该分支(git checkout master ; git merge tmp

这样,没有cherry-picking,意味着没有重复提交。


如果已推送具体内容,那么挑选可以起作用,从旧版提交到最新提交。

  

在“cherry-pick A..B”表单中,A应该早于B。   如果命令错误,命令将无声地失败。