如何按特定顺序合并分支的提交

时间:2017-05-19 21:21:09

标签: git github version-control merge

我有一个git repo,c1作为头部提交。由于我必须同时处理两个功能,所以我创建了一个分支(my branch)。我一直致力于main branch中的一项功能及其子功能以及my branch中的另一项功能。这就是我的本地回购的样子。

c0->c1->c3->c4->c5->c6 (main branch)
    \
     c2 (my branch)

main branch的所有新提交都已被推送到远程仓库。现在功能c2已完成,必须与main branch合并。这就是我的本地回购应该是这样的。

c0->c1->c3->c4->c5->c6->c2

如何获得这种结构? git cherry-pick c2无法引发合并冲突。

4 个答案:

答案 0 :(得分:2)

如果提交的次数超过1次,最好使用rebase,而不是使用

git rebase c1 c2 --onto main_branch

当然,冲突仍然存在。在rebase期间解决它们;当git在冲突中停止时会打印一个帮助。

答案 1 :(得分:1)

通常,您使用git merge ...

执行此操作

主人:

git merge c2

然后,您可以在合并时解决冲突。考虑到历史记录中的c2有多远,并且取决于c2触及的内容,可能会发生冲突。

答案 2 :(得分:1)

照顾冲突,你应该没事。冲突是我们工作的一部分。例如,如果您尝试合并,则会发生同样的事情。

答案 3 :(得分:0)

解析如下:

git checkout my_branch
git rebase master
<resolve any conflicts>
git checkout master
git merge my_branch