我已经被这个 Github 问题撞到墙上了,终于来到这里寻求帮助。我的repo https://github.com/KAPSARC/KTAB有两个感兴趣的分支: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]
as in 这个问题 https://stackoverflow.com/questions/27413038/github-branches-are-always-ahead-or-behind,因为大师永远不会改变通过它自己。更相关的图表是:
1 -- 2 ---------------------- * -- 8 [master]
\ /
A -- B -- C -- D -- E [alternate-testing]
所以在这个图的最后,master
and alternate-testing
必须相同。没有任何变化master
分支之后,以及每一个变化alternate-testing
已合并到master
.
然而,GH 显示这两个分支不同步。我今天早上刚刚进行了合并,GH 说的是master
:“该分支领先 3 次提交,落后备用测试 29 次提交。”
这怎么可能,我该如何解决这个令人抓狂的问题?
感谢评论者帮助我指出正确的方向。我们一直在使用 Squash+Merge 来合并我们的 PR,这有利于简化提交历史记录。
Squash 的工作原理是创建一个新的提交,然后将其合并,但是only进入基础分支。因此,虽然基础分支中的代码在合并到 PR 分支后是相同的,但基础分支有一个额外的提交。看来 GH 应该将挤压提交放在两个分支上以维护真实的历史记录。
我们通过使用普通的合并而不是 Squash+Merge 解决了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)