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

Git 如何按特定顺序合并来自分支的提交,git,github,version-control,merge,Git,Github,Version Control,Merge,我有一个git回购协议,以c1作为主要承诺。因为我必须同时处理两个特性,所以我必须创建一个分支(mybranch)。我一直在主分支中处理一个功能及其子功能,在我的分支中处理另一个功能。这就是我的本地回购协议的样子 c0->c1->c3->c4->c5->c6 (main branch) \ c2 (my branch) 来自主分支机构的所有新提交都已推送到远程回购。现在功能c2已完成,必须与主分支合并。这就是我的本地回购协议的样子 c0->

我有一个git回购协议,以
c1
作为主要承诺。因为我必须同时处理两个特性,所以我必须创建一个分支(
mybranch
)。我一直在
主分支
中处理一个功能及其子功能,在
我的分支
中处理另一个功能。这就是我的本地回购协议的样子

c0->c1->c3->c4->c5->c6 (main branch)
    \
     c2 (my branch)
来自主分支机构的所有新提交都已推送到远程回购。现在功能
c2
已完成,必须与
主分支合并。这就是我的本地回购协议的样子

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

如何获得这种结构
git cherry pick
c2无法抛出合并冲突。

通常使用
git merge
执行此操作

关于master:

git merge c2

然后在合并时解决冲突。考虑到
c2
在历史上的历史有多远,并且取决于
c2
涉及的内容,冲突很可能发生。

通常使用
git merge
执行此操作

关于master:

git merge c2

然后在合并时解决冲突。考虑到
c2
在历史上的历史有多远,并且取决于
c2
涉及的内容,冲突很可能发生。

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

处理好冲突,您应该会没事的。冲突是我们工作的一部分。例如,如果您尝试合并,也会发生同样的情况。

如果有多个提交,您最好使用rebase,而不是cherry pick:

git重设基地c1 c2——到主分支上


当然,冲突仍然是可能的。在重新设置基础时解决这些问题;git在冲突停止时打印帮助。

如果有多个提交,最好使用rebase,而不是cherry pick:

git重设基地c1 c2——到主分支上

当然,冲突仍然是可能的。在重新设置基础时解决这些问题;git在冲突停止时打印帮助。

解决方法如下:

git checkout my_branch
git rebase master
<resolve any conflicts>
git checkout master
git merge my_branch
git签出我的分支
git重基主控器
切换到主分支
git合并我的分支
解决方法如下:

git checkout my_branch
git rebase master
<resolve any conflicts>
git checkout master
git merge my_branch
git签出我的分支
git重基主控器
切换到主分支
git合并我的分支

您是否尝试解决这些合并冲突?你说要什么就给什么,我想你没有太多选择。我更担心的是订单。cherry pick会确保c2在c6之后吗?或者它会尝试在c1和c2之间输入它?您是否尝试解决这些合并冲突?你说要什么就给什么,我想你没有太多选择。我更担心的是订单。cherry pick会确保c2在c6之后吗?或者它会尝试在c1和c2之间输入?顺序如何?如果我解决了冲突,c2会排在c5之后吗?我想你会在主分支上工作(此时点在c6上),你会选择c2。这将在c6之后产生c2。这不像git分析c2创建的时间来神奇地将其插入c3之前。它将把c2置于c6之上。从技术上讲,它不是真正的c2,它是c2的等价物(在周围的文档中通常称为c2)。它将保留与c2相同的作者,但提交者将是cherry挑选的人。。。。这是一个与c2完全不同的版本。顺序如何?如果我解决了冲突,c2会排在c5之后吗?我想你会在主分支上工作(此时点在c6上),你会选择c2。这将在c6之后产生c2。这不像git分析c2创建的时间来神奇地将其插入c3之前。它将把c2置于c6之上。从技术上讲,它不是真正的c2,它是c2的等价物(在周围的文档中通常称为c2)。它将保留与c2相同的作者,但提交者将是cherry挑选的人。。。。这是一个与c2完全不同的版本。