github是否允许预先接收挂钩?

Jas*_*rip 36 git github

GitHub是否允许预先接收或更新挂钩?

我要做的是防止主分支被推送到(即master,hotfix,develop)并要求它们通过GitHub pull请求合并.这是一个私人仓库,所以GitHub样式分叉不是一个选择.

关于如何实现这一点的任何建议都会有很大的帮助.

GoZ*_*ner 18

只有您列出"协作者"的人才能推送到Github托管的存储库.请参阅存储库的"管理员"页面以添加协作者.其他人都需要提交一个"拉取请求"来获取存储库管理员接受的添加内容.请参阅Github访问权限.(没有每个分支的访问权限.)因此,为了实现您的目标,您不需要钩子; 你需要的东西已经内置了.

两个笔记:

  1. 私有Github存储库可以有多个贡献者
  2. 考虑到钩子包含任意代码,Github支持预接收挂钩(或任何其他服务器挂钩)是不常见的.

  • 这是伟大的,但它是一个私人回购,有合作者,预接收挂钩是一个git核心功能,我看到有一种方式git-hub实现它们. (3认同)

小智 9

虽然GitHub本身不允许预接收挂钩,但GitHub Enterprise 2.6版确实包含预接收挂钩支持.有关它的更多信息,请访问:https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/.这些是实例范围的预接收挂钩,以防止任何信息被推送到任何存储库.

我要做的是防止主分支被推送到(即master,hotfix,develop)并要求它们通过GitHub pull请求合并.

但是,到目前为止,您可以使用受保护的分支配置GitHub或GitHub Enterprise存储库.这样做是防止被删除的分支,力推,只有某些人或团队可以合并,或需要状态检查路过前的合并是允许的.有关更多信息,请参阅https://help.github.com/articles/about-protected-branches/!


Jay*_*len 5

如果你正在与一个值得信赖的团队合作(我认为你是私人回购)并且你想要实现这一目的只是为了让人们不会因为纯习惯而意外违反你的标准操作程序,那么最好的办法是分发pre-push每个人都可以安装到他们的.git/hooks目录中的自定义钩子脚本.(我做了类似的事情最近大家都坚持跑git config branch.autosetuprebase always含蓄地改变git pull,以git pull --rebase消除不必要的合并时,当地unpushed提交存在)

如果由于某些原因不起作用,我发现事后失去经营权的威胁通常是保持人们诚实的有效机制.