Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 解决要素分支上的合并冲突不需要';I don’我不能为所有的主分支机构工作_Git_Github_Merge_Git Merge_Git Pull - Fatal编程技术网

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;
    
    你的