我有一个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无法引发合并冲突。
答案 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