8

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

如何设置主存储库的配置以设置receive.denyNonFastForwards标志,以便主存储库只能接受快进的推送,并且即使它们是,也会拒绝任何非快进--forced

4

2 回答 2

9

GitHub 没有公开此功能,但有两种选择:

  • GitHub 支持可以在存储库上设置它。

  • 您可以通过将 GitHub 存储库设置为您拥有更多控制权的另一个存储库的镜像来模拟这一点。仅将 GitHub 帐户的写入权限授予最少的负责个人以及用于进行镜像的帐户。非 GitHub 存储库将是您设置的位置receive.denyNonFastForwards,并让每个人都推送。然后可以通过post-receive钩子、cron 作业或两者的组合来完成镜像。post-receive使用两者的一个原因是在两个存储库之间获得最小的时间延迟,并且即使钩子未能更新 GitHub(例如,如果 GitHub 已关闭),仍然确保一切都是最新的。

于 2012-10-22T17:25:37.547 回答
0

Github 企业版现在具有禁用强制推送的功能。对于不使用企业版的用户,您可以配置一个 pre-push hook

除非绝对必要,否则永远不要强行掌握,这是一个很好的做法。

于 2015-02-07T19:52:34.220 回答