【问题标题】:How to set the receive.denyNonFastForwards on a repository in GitHub如何在 GitHub 的存储库中设置 receive.denyNonFastForwards
【发布时间】:2012-10-22 16:58:20
【问题描述】:

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

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

【问题讨论】:

    标签: git github


    【解决方案1】:

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

    • GitHub 支持可以在存储库中设置此项。

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

    【讨论】:

    • 虽然这似乎是正确的,但我可以通过联系他们的支持团队并要求完成,让 GitHub 代表我们进行设置。
    • 很高兴知道。我将修改答案以提及 GitHub 支持。
    【解决方案2】:

    Github 企业版现在具有disabling force pushes 的功能。不使用企业版的可以configure a pre-push hook

    除非绝对必要,否则永远不要强制掌握掌握是一个好习惯。

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 2020-10-26
      • 2022-12-10
      • 2011-04-04
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      相关资源
      最近更新 更多