Github 认为合并后分支不同

Dr.*_*rew 6 git version-control github 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]
Run Code Online (Sandbox Code Playgroud)

就像在这个问题中一样,因为 master本身永远不会改变。更相关的图表是:

1 -- 2 ---------------------- * -- 8 [master]
       \                      /
        A -- B -- C -- D -- E [alternate-testing]
Run Code Online (Sandbox Code Playgroud)

所以在这个图的末尾,masteralternate-testing必须是相同的。master分支之后没有任何变化,并且每个变化alternate-testing都被合并到master.

然而,GH 显示两个分支不同步。我今天早上刚刚完成了合并,GH 说master:“这个分支提前 3 次提交,在备用测试之后 29 次提交。”

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

Dr.*_*rew 5

感谢评论者帮助我指出正确的方向。我们一直在将我们的 PR 与 Squash+Merge 合并,这具有简化提交历史的好处。

壁球作品通过创建一个新的提交,然后被合并,但到主分支。因此,虽然合并后基本分支中的代码与 PR 分支中的代码相同,但基本分支有一个额外的提交。似乎 GH 应该将壁球提交放在两个分支上以保持真实的历史记录。

我们已经通过使用普通的 Merge 而不是 Squash+Merge 解决了这个问题。