如何保护github中的“主”?

我在github项目中有几个贡献者。 我只想让他们中的一个“推”主。 而这个人不是我(仓库的所有者)。 有可能吗?

那么当这个问题发布的时候,GitHub不允许你指定分支级别的访问权限。 您只能在存储库级别上执行此操作。 所以你要求的是不可能的。

如果你想解决这个限制,我个人看到两个select:

  • 你可以使用某种提交钩子等,至less告诉别人发生了什么错误
  • 如果你真的需要这个严格的控制,你可以使用两个仓库,一个只有你的“主”分支。 然后,您需要确保只有您的“家伙”才能获得对主存储库的写入权限

我认为用一些组织来解决这个问题比较容易。 在我的团队中,我们从不直接推送任何东西,而是总是创build拉取请求。 这可以确保在代码合并之前至less有人需要查看一下,你也可以定义一个策略,只允许你的“家伙”合并pull请求。

更新

GitHub现在宣布将推出一项名为“受保护分支机构”的新function。 这个function已经出现在像Atlassian Stash这样的其他git发行版中。 它可以让你保护一些分支免受推挤。 但是,它仍然不允许对各个分支机构进行完整的基于ACL的保护。 因此,如果您不想依靠上面提到的组织解决scheme,您可能需要检查此function。

注意: 受保护的分支机构和必要的状态检查 (2015年9月3日)将允许您保护分支机构

  • 反对被迫推
  • 反对删除
  • 直到所需的状态检查通过为止

https://cloud.githubusercontent.com/assets/25792/9596474/27db3ce6-502a-11e5-9b19-5b47a8addc65.png


自2016年3月起,正如下面的Sander所评论的,您有用户和团队的限制

有时合并到受保护的分支最好由发布经理或负责该分支稳定的人员组成。 组织现在可以指定哪些成员和团队能够推送到受保护的分支。

https://cloud.githubusercontent.com/assets/4719/14140705/ed98abac-f67a-11e5-951e-b48c842fb77f.png

这正是分叉所devise的。 您将拥有主存储库,并且您将允许所有参与者在该存储库上具有读取权限。 这些贡献者将分叉回购,并将他们的变化推到主要回购的个人副本。 当他们准备将代码引入主存储库时,他们会向主存储库提交一个请求。 在这种情况下,主项目的所有者可以完成请求。