按分支名称前缀拒绝git合并

时间:2016-04-12 08:57:59

标签: git git-merge git-config

当当前分支名称具有特定前缀时,如何配置我的git存储库以拒绝所有合并响应?

我想保留我的主分支,以防止来自分支的合并,这些分支是尖峰解决方案,其前缀如'spike _'。

1 个答案:

答案 0 :(得分:0)

这里的答案是“否”和“是”,具体取决于您未指定的几项内容。

考虑提交 - 合并和非合并 - 如何到达您的存储库:

  • 你可以自己制作;
  • 你可以带着他们进入git fetch;和
  • 您可以通过git push
  • 获取它们

对于第一种情况,您可以编写位于您和git merge之间的挂钩或前端命令,但当然您也可以绕过这些命令。

对于第二种情况,您可以做的很少(尽管不是什么都没有):当您使用git fetchgit remote update时,您可以推迟远程跟踪分支更新,或者将其回滚来自您的reflog,如果新提交包含这样的合并。这将保护您的存储库,但不会影响您从中获取的存储库。

对于最后一种情况,您可以使用预接收或更新挂钩直接保护您的存储库。在这个钩子中,您将检查对分支标签的建议更改。如果标签具有您想要保护的表单,那么您将扫描在接受更改时将引入的提交。如果其中任何一个是您要拒绝的合并,则可以拒绝特定更新(在更新挂钩中)或整个更新集(在预接收挂钩中)。与fetch情况一样,这不会影响推送给您的存储库,但如果您和您的协作者使用集中式工作流并且您是中心,这将阻止他们将此类合并引入同行通过您的(中央)存储库。