有没有办法让git repo拒绝尝试将分支的合并提交推送到同一分支的上游版本?基本上我想通过合并以下一般形式来防止污染历史记录:
合并分支' X ' 远程进入 X
因此,开发人员需要pull --rebase
或手动stash-pull-pop stash-commit-push,如所述here.其他合并类型(例如&#34;合并分支&#39; <应该仍然允许em> X &#39;进入 Y &#34;)。
答案 0 :(得分:0)
您可以使用服务器端来尝试实现此目的。
您的存储库中的repo / .git / hooks目录中有一些示例挂钩。
您可以在此处看到解析提交消息的示例挂钩on validating commit messages
请注意,有一些有问题的案例与您尝试做的事情有关,而且我从未亲自提出过适用于所有情况的解决方案。
想象一下,开发人员A进行“真正的”合并,并将分支X合并为Y.
当他们去推动时,他们因非快进而被拒绝。此时,您是否让他们尝试git rebase -p
(这可能有问题),或者您是否指示他们启用git rerere
并抛出合并并重做它?这两种解决方案都不像只执行git merge
(通常)那样简单。
我有更好的运气,迫使用户拥有git config --global pull.rebase true
(或更好,以某种方式自动设置它们),这将确保他们是变基而不是合并。一旦你有了这个,你就不必担心提交钩子了。