如何在GitHub中的存储库上设置receive.denyNonFastForwards

如何在GitHub中的存储库上设置receive.denyNonFastForwards,git,github,Git,Github,我有一个托管在GitHub上的存储库,它有几个分叉 我如何设置主存储库的配置,以设置接收.denynonfastfrowards标志,以便主存储库只能接受快进推送,并拒绝任何非快进推送,即使它们是--强制的GitHub不公开此功能,尽管有两个选项: GitHub支持可以在存储库上设置此选项 您可以通过将GitHub存储库设置为另一个您可以更好地控制的存储库的镜像来模拟这一点。仅将GitHub帐户的写访问权限授予最少的负责人,以及用于执行镜像的帐户。非GitHub存储库是您设置receive.d

我有一个托管在GitHub上的存储库,它有几个分叉


我如何设置主存储库的配置,以设置
接收.denynonfastfrowards
标志,以便主存储库只能接受快进推送,并拒绝任何非快进推送,即使它们是
--强制的

GitHub不公开此功能,尽管有两个选项:

  • GitHub支持可以在存储库上设置此选项

  • 您可以通过将GitHub存储库设置为另一个您可以更好地控制的存储库的镜像来模拟这一点。仅将GitHub帐户的写访问权限授予最少的负责人,以及用于执行镜像的帐户。非GitHub存储库是您设置
    receive.denyNonFastForwards
    ,并让所有人推送的地方。镜像可以通过
    post-receive
    hook、cron作业或两者的组合来完成。使用这两种方法的一个原因是在两个存储库之间获得最小的时间间隔,并且即使
    post receive
    hook无法更新GitHub(例如,如果GitHub关闭),也要确保所有内容都是最新的


Github enterprise edition现在有了一个用于的功能。对于不使用企业版的用户,您可以


除非绝对必要,否则最好不要强行推送至master。

虽然这似乎是正确的,但我还是能够让GitHub代表我们联系他们的支持团队并要求完成这项工作。很高兴知道。我将修改答案以提及GitHub支持。