Github是否允许使用pre-receive或update hooks?
我想要实现的是防止主分支(如master、hotfix和develop)被推送,而要求通过GitHub拉取请求进行合并。由于这是一个私有仓库,因此GitHub风格的分叉不是一个选项。
如何实现这一点的任何建议都将非常有帮助。
虽然 GitHub 本身不允许使用 pre-receive 钩子,但是 GitHub Enterprise 版本 2.6 包括了 pre-receive hook 支持。有关此内容的更多信息可以在此处找到:https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/。这些是实例范围内的 pre-receive 钩子,以防止将任何信息推送到任何存储库中。
我要做的是防止主要分支被推送(即 master、hotfix、develop),并要求它们通过 GitHub pull request 进行合并。
但是,迄今为止,您可以配置 GitHub 或 GitHub Enterprise 存储库来保护分支。这样做可以防止分支被删除或强制推送,只有特定人员或团队可以合并,或需要状态检查才能进行合并。请参见https://help.github.com/articles/about-protected-branches/了解更多信息!
pre-push
钩子脚本供每个人安装到他们的.git/hooks
目录中。(我最近做了类似的事情,坚持让每个人运行git config branch.autosetuprebase always
,这会隐式地将git pull
更改为git pull --rebase
,以消除本地未推送提交存在时不必要的合并。)