Github认为合并后分支机构不同

时间:2017-03-27 06:16:03

标签: git github version-control merge-conflict-resolution git-merge-conflict

我用这个Github问题把我的头撞在了墙上,足以终于来到这里寻求帮助。我的repo有两个感兴趣的分支:master,它是当前的实时发布分支,alternate-testing,这正是它听起来的样子。我们的开发过程将特征分支定期分支(和分叉)关闭alternate-testing,然后合并回alternate-testing。最后,alternate-testing会定期合并到master。请注意,测试分支是master的守门员 - 没有任何内容进入master但是通过alternate-testing

非常清楚,这不是这样的情况:

1 -- 2 -- 3 -- 4 -- 5 -- 6 -- 7 -- 8 [master]
       \                      /
        A -- B -- C -- D -- E [alternate-testing]

this question一样,因为主永远不会改变。更相关的图表是:

1 -- 2 ---------------------- * -- 8 [master]
       \                      /
        A -- B -- C -- D -- E [alternate-testing]

因此,在此图表的末尾,masteralternate-testing必须完全相同。分支后master没有变化,alternate-testing中的每个变化都已合并到master

然而,GH表明两个分支不同步。我今天早上做了合并,GH说master:"这个分支提前3次提交,29次提交备用测试。"

这怎么可能,我该如何解决这个令人抓狂的问题呢?

1 个答案:

答案 0 :(得分:4)

感谢评论者帮助我指出正确的方向。我们一直在使用Squash + Merge合并我们的PR,这有利于简化提交历史。

Squash的工作原理是创建一个新的提交,然后将其合并,但进入基本分支。因此,虽然基本分支中的代码在合并到PR分支之后是相同的,但基本分支具有额外的提交。似乎GH应该将壁球提交放在两个分支上以维持真实的历史。

我们通过使用普通的香草Merge而不是Squash + Merge来解决这个问题。