Git 解决要素分支上的合并冲突不需要';I don’我不能为所有的主分支机构工作
我有三个Git 解决要素分支上的合并冲突不需要';I don’我不能为所有的主分支机构工作,git,github,merge,git-merge,git-pull,Git,Github,Merge,Git Merge,Git Pull,我有三个master分支 master master alpha master beta版 所有这些分支都有100提交,并且都是此分支与master一致 我有三个“特征”分支 布鲁克林功能区(主功能区…布鲁克林功能区) feature staten island(master…feature brooklyn…feature staten island) feature manhattan(master…feature manhattan) 每个都是master的分支,feature s
master
分支
master
master alpha
master beta版
100
提交,并且都是此分支与master一致
我有三个“特征”分支
布鲁克林功能区
(主功能区
…布鲁克林功能区
)
feature staten island
(master
…feature brooklyn
…feature staten island
)
feature manhattan
(master
…feature manhattan
)
每个都是master
的分支,feature staten island
对master
进行了根本性的更改,因此它已经与feature brooklyn
合并
这是设置
我做了一个PR,将布鲁克林的功能添加到主测试版。没有问题
我做了一个PR,将功能staten island
添加到主测试版中
存在合并冲突。因此,我将master beta
合并到feature staten island
中,然后将更新推送到feature staten island
这很有效,我可以合并
我发现的问题是:
我现在做一个PR,将布鲁克林的功能添加到主alpha
中。工作
我做了一个PR,将功能staten island
添加到主alpha
,但仍然存在合并冲突李>
为什么当我解决功能分支与另一个分支的合并冲突,然后更新功能分支时,当我使用完全相同的代码在另一个分支上合并时,仍然存在冲突
我的目标是拥有三个干净的特性分支,它们可以轻松地合并到三个主分支中。我不明白为什么一旦我为其中一个主分支修复了合并冲突,为什么在我尝试将其合并到另一个主分支时仍然存在冲突。当您解决主beta
和功能staten island
之间的冲突时,您可能选择将代码保留在feature staten island
上
这意味着master beta
和master alpha
不再相同。您必须解决相同的合并冲突,因为冲突代码仍然存在于master alpha
和feature staten island
之间
每当合并中存在冲突代码时,Git都会标记冲突。您可以尝试使用git merge branch-X ours
告诉git更喜欢当前分支上的版本,或者git merge branch-X theres
更喜欢其他分支的版本。(我不认为这是最好的工作流程,但这是可能的。)当您解决主测试版
和功能状态岛
之间的冲突时,您可能选择将代码保留在功能状态岛
上
这意味着master beta
和master alpha
不再相同。您必须解决相同的合并冲突,因为冲突代码仍然存在于master alpha
和feature staten island
之间
每当合并中存在冲突代码时,Git都会标记冲突。您可以尝试使用git merge branch-X ours
告诉git更喜欢当前分支上的版本,或者git merge branch-X theres
更喜欢其他分支的版本。(我不认为这是最好的工作流,但这是可能的。)我认为这是因为导致与功能分支冲突的源行仍然存在于每个主分支中。例如,假设每个主分支都有一个提交,超过了功能分支的分支点,,它执行以下操作:
a = 1;
现在,在staten island的功能上,有一个commit,它在同一行上执行以下操作:
a = b + 3;
要解决冲突,假设您真的想要:
a = b + 1;
那么,当将主测试版
合并到功能staten island
时,您的冲突解决方案将是a=b+1代码>在功能staten岛上
。但是,由于这仍然不同于a=1代码>在master beta
上,当您将feature staten island
合并回来时,您仍然必须解决master beta
上的冲突行。现在master beta
也有正确的行a=b+1代码>
现在,由于master alpha
和master
与master beta
处于相同的原始提交参考,因此它们仍然具有冲突的行a=1代码>,也就是说,它们仍将不同于史塔顿岛上的功能
,该功能具有正确的行a=b+1代码>。由于feature staten island
上的校正行现在是a=b+1,因此它们不同的方式已经改变代码>而不是原来的a=b+3代码>,但行仍然冲突。因此,您必须在feature staten island
和其余的master XXX
分支之间执行相同的冲突解决
有意义吗?我认为这是因为导致与要素分支冲突的源行仍然存在于每个主分支中。例如,假设每个主分支都有一个提交,超过了功能分支的分支点,,它执行以下操作:
a = 1;
现在,在staten island的功能上,有一个commit,它在同一行上执行以下操作:
a = b + 3;
要解决冲突,假设您真的想要:
a = b + 1;
你的