github允许预接收挂钩吗?
GitHub是否允许预接收或更新挂钩 我希望做的是防止主分支被推送到(即master、hotfix、developer),并要求通过GitHub请求合并它们。这是一种私人回购,因此GitHub风格的分叉不是一种选择github允许预接收挂钩吗?,git,github,Git,Github,GitHub是否允许预接收或更新挂钩 我希望做的是防止主分支被推送到(即master、hotfix、developer),并要求通过GitHub请求合并它们。这是一种私人回购,因此GitHub风格的分叉不是一种选择 任何关于如何实现这一点的建议都会很有帮助。只有您列出“协作者”的人才能推送到Github托管的存储库。请参阅存储库的“管理”页面以添加协作者。其他所有人都需要提交一个“拉请求”,以便让存储库管理员接受他们添加的内容。看见(没有每个分支的访问权限)因此,为了实现您的目标,您不需要挂钩;
任何关于如何实现这一点的建议都会很有帮助。只有您列出“协作者”的人才能推送到Github托管的存储库。请参阅存储库的“管理”页面以添加协作者。其他所有人都需要提交一个“拉请求”,以便让存储库管理员接受他们添加的内容。看见(没有每个分支的访问权限)因此,为了实现您的目标,您不需要挂钩;你需要的东西已经内置了 注二:
如果您正在与一个值得信任的团队合作(我认为您是因为这是一个私人回购协议),并且您希望实施此操作只是为了防止人们出于纯粹的习惯而意外违反您的标准操作程序,最好的办法是分发一个定制的
预推
钩子脚本,供每个人安装到他们的.git/hooks
目录中。(我最近做了类似的事情,坚持让每个人都始终运行git config branch.autosetuprebase
,这会隐式地将git pull
更改为git pull--rebase
,以在存在本地未推送的提交时消除不必要的合并)
如果出于某种原因,这不起作用,我发现事后失去提交者权利的威胁通常是保持人们诚实的有效机制。尽管GitHub本身不允许预接收挂钩,但GitHub Enterprise 2.6版确实包含预接收挂钩支持。有关它的更多信息可以在此处找到:。这些是实例范围的预接收挂钩,用于防止任何信息被推送到任何存储库中 我希望做的是防止主分支被推送到(即master、hotfix、developer),并要求通过GitHub请求合并它们
但是,到目前为止,您可以使用受保护的分支配置GitHub或GitHub企业存储库。这样做是为了防止分支被删除、强制推送、只有某些人或团队可以合并,或者在允许合并之前需要通过状态检查。有关更多信息,请参阅 这很好,但它是一个有合作者的私有回购,预接收挂钩是git的核心功能,我在看git hub是否有实现它们的方法;无法想象Github会允许这样做。虽然Github似乎不允许预接收钩子,但它确实允许后接收钩子:@AlexanderGladysh钩子只会将JSON发布到指定的URL,但它仍然不允许任意代码。事实上,您唯一可以指定的是URL,而不是钩子本身。请注意,GH确实允许用户分叉私有repo,因此它保持私有。不过,叉子的数量是有限制的。请咨询您的付款计划信息。一旦人们从github UI合并PRs,这将不起作用。这在大型团队中非常常见。当然,现在是这样,但在我发表评论时就不是了。谢谢你指出这一点,因为这肯定会降低这些天的效用。