Git“pre-branch”钩子是否可行?

7
我想创建一个“预分支”钩子,如果另一个分支的名称与给定的正则表达式匹配,则阻止用户创建具有相同表达式匹配的名称的分支。最理想的情况是,它可以在本地托管并在用户触及远程 repo 之前触发,但我愿意尝试任何能够防止在远程上创建不需要的分支名称的方法(如 pre-push 或 pre-receive 钩子)。 我刚刚转到 git ,请将我对 git 钩子的了解视为极其初级。
谢谢!
1个回答

5

在本地操作不可取 - 开发者在自己的存储库中所做的只是他自己的事情。

您可以安装服务器端钩子来检查正在推送的引用名称。 此示例 中的第一个脚本显示了如何获取引用名称。

如果开发人员想使用任何名称,则可以这样做 - 然后,如果它试图推送错误的名称,则仍然可以使用git push <remote> <localref>:<remoteref> 表示法将其更改为他想要的任何其他名称,例如 git push origin badly_named:ok_named


谢谢您的回复!在我继续按照这种方式实施之前,我想先向您反映实际问题,看看您是否有任何想法。具体问题是发布分支包含的更改未被带回到我们的开发分支中。最初的想法是创建一个钩子,当创建一个名称类似于另一个远程分支的分支时触发。这样,我们只需要要求发布分支使用相同的命名风格,然后开发人员将被迫删除该分支,促使他合并任何更改。 - mgoldman
另一个想法是拥有一个永久的发布分支。缺点是我们的发布分支可能包含在我们的开发分支中不存在的代码。你有什么想法? - mgoldman
你可能已经看过它,但是它太好了,你永远不会忽略它:http://nvie.com/posts/a-successful-git-branching-model/ - mgarciaisaia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接