2017-05-19 17 views
0

我有一个git回购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

你尝试解决这些合并冲突?给你说你想要的,我不认为你有多少选择。 –

+0

我更担心这个命令。樱桃选择确保c2在c6之后?或者它会尝试在c1和c2之间输入它? –

回答

1

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

+0

订单怎么样?如果我解决冲突,c2会在c5之后出现吗? –

+0

我想你会在_main branch_上工作(此刻正在c6上),然后你会选择c2。这将带来c2_after_c6。例如,它不是**,就像git分析创建c2的时间,以便奇迹般地将其插入c3之前。它会将c2放在c6之上。从技术上讲,这不是真正的C2,它是C2的等价物(通常在文件中被称为_c2'_)。它会保留与c2相同的作者,但提交者将成为樱桃选择的人。 – eftshift0

+0

...这与c2完全不同。 – eftshift0

1

通常你git merge执行此...

在主:

git merge c2 

你然后在合并的点解决冲突。鉴于历史背后有多远,并且根据什么触及,冲突可能会发生。

2

如果有超过1提交您更好地利用底垫中,不摘樱桃:

git rebase c1 c2 --onto main_branch

冲突仍然是可能的,当然。在rebase期间解决它们; git在冲突时停止打印帮助。

0

解析如下:

git checkout my_branch 
git rebase master 
<resolve any conflicts> 
git checkout master 
git merge my_branch 
相关问题