我有一个托管在GitHub上的存储库,它有几个分支。如何在GitHub的存储库上设置receive.denyNonFastForwards
我如何设置主仓库的配置设置receive.denyNonFastForwards
标志,以便在主存储库只能接受推送这是快进,将拒绝任何非快进,即使他们--forced
我有一个托管在GitHub上的存储库,它有几个分支。如何在GitHub的存储库上设置receive.denyNonFastForwards
我如何设置主仓库的配置设置receive.denyNonFastForwards
标志,以便在主存储库只能接受推送这是快进,将拒绝任何非快进,即使他们--forced
的GitHub不公开此功能,但有两种选择:
GitHub支持可以在存储库上设置此功能。
您可以通过将GitHub存储库设置为您有更多控制权的另一个存储库的镜像来模拟此操作。只允许一小部分负责人和一个用于执行镜像的帐户向GitHub帐户提供写入权限。非GitHub存储库将设置为receive.denyNonFastForwards
,并让每个人都推送。镜像可以通过post-receive
挂钩,cron作业或两者的组合完成。与两者兼容的原因是为了在两个存储库之间获得最小的时间延迟,并且即使post-receive
挂钩无法更新GitHub(例如,如果GitHub已关闭),仍然确保所有内容都是最新的。
Github企业版现在具有disabling force pushes的功能。对于不使用企业版的人员,您可以configure a pre-push hook。
这是一个很好的做法,绝不强制推动主人,除非绝对必要。
虽然这看起来是正确的,但我可以让GitHub代表我们通过联系他们的支持团队并要求完成这件事来设置它。 –
很高兴知道。我会修改提到GitHub支持的答案。 –