我是否可以要求所有GitHub提交都来自拉取请求?

时间:2013-10-23 17:10:47

标签: git github githooks

我想强制所有提交给master的提交来自pull请求。如果不通过拉取请求,我们不希望直接提交。

有没有办法做到这一点?这可以通过服务器挂钩来实现,例如?

2 个答案:

答案 0 :(得分:1)

您可以-参见https://help.github.com/articles/about-protected-branches/ 如果您为GH付款,那么它也适用于公共回购,也适用于私人回购。

答案 1 :(得分:0)

我想,你想要github pull请求的行为!由于github不提供服务器端钩子,你必须自己和你的机器上做它!

如果您将github pull请求应用于您的仓库,则可能会发生快进。由于您不想这样做,您应该执行以下操作:

  1. 添加一个新的远程(具有拉取请求提交的存储库)
  2. 获取新的远程
  3. 使用--no-ff
  4. 合并相应的分支
  5. 将其推送到您的github帐户。
  6. 这将确保您的主人只有合并,即使可能有快进。之后您可以移除遥控器。

    如果您与其他人共享您的存储库(公共写入权限),您将无法执行此操作。但无论如何,我不允许其他人访问我的存储库!


    如果你想确保没有人能够提交到主分支(在存储库的每个fork / clone上),你应该写一个钩子(客户端),它检查分支并在分支是的时候中止提交主。请注意,默认情况下,每个用户都必须自己启用挂钩,并且每个用户都可以在不运行挂钩的情况下进行提交!