【发布时间】:2015-04-26 20:03:45
【问题描述】:
在我们当前的工作流程中,我们有 2 个主要的 git 分支:
master - 稳定发布分支
testing - 每个人都在测试他们的代码
现在每个开发人员都会为他们开发的每个功能创建新的分支。完成后,他们将其合并到 testing,当我们的 QA 说可以继续时,他们将他们的分支合并到 master,然后部署到生产环境中。
随着时间的流逝,我们的testing 分支会被从未投入生产的提交污染。被遗弃的功能,被重写而不是修复的东西和其他东西。
为了使master 和testing 保持某种一致的状态,我们希望不时“重置”testing。目前,我们通过完全删除 testing 并将其从 master 重新分支来做到这一点。
这里最大的问题是我们需要确保每个开发人员也删除他的本地 testing 分支并检查它的新副本。
如果一位开发人员忘记这样做并再次推动测试,我们试图摆脱的所有脏提交都会回来。
有什么方法可以重置服务器上的分支以将其分发给所有用户?
一个可接受的解决方案是将testing 分支置于一个没有人可以在不进行本地重置的情况下再推送到它的状态。但我想不出办法。
在 master 和 testing 之间创建差异并恢复提交不是一种选择,因为这会阻止这些提交中的每一个再次进入测试。
理想情况下,我会有一个脚本定期执行此重置,并且每个用户本地环境都不需要交互(git pull 除外)。
【问题讨论】:
标签: git github git-branch remote-branch