禁止git合并到同一个上游分支

时间:2014-10-15 00:53:29

标签: git merge

有没有办法让git repo拒绝尝试将分支的合并提交推送到同一分支的上游版本?基本上我想通过合并以下一般形式来防止污染历史记录:

合并分支' X ' 远程进入 X

因此,开发人员需要pull --rebase或手动stash-pull-pop stash-commit-push,如所述here.其他合并类型(例如&#34;合并分支&#39; <应该仍然允许em> X &#39;进入 Y &#34;)。

1 个答案:

答案 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(或更好,以某种方式自动设置它们),这将确保他们是变基而不是合并。一旦你有了这个,你就不必担心提交钩子了。