【发布时间】:2021-09-19 10:52:03
【问题描述】:
目前我们的开发团队正在使用以下 git 流程:我们有一个主分支、一个发布分支和几个个人分支。个人分支(远程和本地)由开发人员自己创建和管理,以保存未完成的工作。主分支和发布分支受到保护,没有开发人员可以将其个人分支合并到主分支或发布分支,除非他创建拉取请求并获得通过。目前,这种方法对我们来说效果很好,但仍然存在一个问题:
开发人员应该在开始工作之前拉取更改并将主分支合并到他自己的分支,以防他们的分支变得过时。但时不时,总会有人忘记做这件事,造成一些麻烦。例如,一些文件在 master 上的实现已经改变,但是忘记更新他们的分支的人可能仍然在旧版本上工作。当他完成工作并想要将更改合并到 master 时,他意识到分支已经过时,最终,当他从 master 拉取更改并合并时,会发生繁琐的合并冲突,他必须修复它们。
因此,对于这个问题,我正在寻找一些可以帮助我们消除此类问题的自动工具。如果有人对此有想法,或者有想法改进我们当前的 git 流模型,请在下面留下答案,谢谢!
【问题讨论】:
-
审查 PR 的审查者必须告诉创建 PR 的开发人员在最新的 master/prod 之上合并/重新调整他们的更改。否则,您可以尝试查看 pre-receive 钩子以拒绝(不推荐)或提醒开发人员他们推送的提交不在最新的 master/prod 之上
-
"但是忘记更新其分支的人可能仍在使用旧版本,并导致繁琐的合并冲突得到修复。"所以呢?他们“哦!”现在合并 master(或对其进行 rebase)并在本地修复内容并再次推送到拉取请求。或者关闭拉取请求并重新开始!没什么大不了。关键是,您正在寻找的工具叫做 Brain。