【发布时间】:2012-10-22 16:58:20
【问题描述】:
我有一个托管在 GitHub 上的存储库,它有几个分支。
如何设置主存储库的配置以设置 receive.denyNonFastForwards 标志,以便主存储库只能接受快进推送,并且即使它们是 --forced 也会拒绝任何非快进推送
【问题讨论】:
我有一个托管在 GitHub 上的存储库,它有几个分支。
如何设置主存储库的配置以设置 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。
除非绝对必要,否则永远不要强制掌握掌握是一个好习惯。
【讨论】: