我希望有人可以帮助我解决这个问题,因为我正在挠头想了解发生了什么,以及是否可以纠正。
我目前正在 VSTS 中开发一个项目,并使用 GIT 作为代码存储库。我有通常的 MASTER 分支,还有一个 DEVELOPMENT 分支。然后,我从开发分支创建功能分支。
当我们完成功能分支中的更改后,我创建一个拉取请求,并且可以成功地将更改合并到 DEV 分支中。然后,DEV 分支在 MASTER 后面显示“0”,在前面显示“x”……这是正确的。
当我们准备将更改合并到 MASTER 中时,问题就出现了。我们创建一个 PULL REQUEST 来执行此操作,并且更改成功合并到 MASTER 中...但是...DEV 分支现在表示落后于 MASTER 1,但仍领先于 MASTER x!为什么 DEV 1 落后于 MASTER?为什么 DEV 仍然领先于 MASTER x? PULL REQUEST之后,MASTER和DEV不应该同步吗?即DEV后面应该是0,MASTER前面应该是0?
我很有可能没有正确理解 GIT,但是 VSTS 中的某些设置是否错误......比如分支策略设置不正确?我在 MASTER 上设置的唯一分支策略(在此阶段)是“强制合并策略 - 挤压合并”。
提前致谢。
壁球合并是造成您误解的原因。
当您压缩合并时,开发分支的所有提交都会被压缩为一个提交。这就是 DEV 落后 master 1 的原因,因为它没有压缩提交。此外,DEV 比 master 领先 x,因为 DEV 有 x 提交,但不在 master 中。
理想情况下,您应该只压缩合并您的功能/主题分支,这将为您提供每个功能一次提交。当你合并到 master 时,你不应该压缩你的 dev 分支。因此,如果需要,您可以更改 master 上的分支策略并将该策略放入 DEV 中。我的建议是让你的开发人员决定何时压缩或不压缩。当您在 VSTS 中完成 PR 时,它会给您一个压缩选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)