【发布时间】:2019-03-28 19:41:40
【问题描述】:
我们有一个 master 分支,用于发布的生产代码,一个 dev 分支,用于测试服务器的代码,以及每个开发人员认为合适的各种功能分支(从 master 分支)。
随着时间的推移,dev 分支与master 有所不同。此外,还有一些不正确的合并会弄乱部分代码。我们已经多次尝试重置(强制推送)dev 与master 相同。可以这么说,重新开始。
不幸的是,这不会持续很长时间。迟早会有人将旧的dev 合并到新的dev 中,将所有的混乱都带回来。我怀疑这甚至可能自动发生,天真的 git pull 默默地合并新旧分支头。
是否可以通过服务器端提交挂钩来防止这种情况?如果合并了错误的提交,会拒绝接受 git push 的东西吗?
【问题讨论】:
-
“迟早会有人合并旧的开发......我怀疑这甚至可能会自动发生”。它本身不是 git,有人在做。如果您使用的是 github 或 gitlab,您可以保护您的分支
dev直接推送,仅通过 Pull/Merge 请求合并分支。 -
在 pre-receive 中搜索入站,如果看到任何不喜欢的内容,请拒绝推送。
-
其实...我刚刚想出了一个更简单的想法——创建一个
dev2分支并将其用于测试服务器。这样,任何人都不会意外合并任何内容。