如何在github中保护“master”?

时间:2012-04-30 09:53:44

标签: git github branch acl protection

我的github项目中有一些贡献者。我想只允许其中一个人来推动"掌握。而这个人不是我(存储库的所有者)。有可能吗?

3 个答案:

答案 0 :(得分:34)

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

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

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

我认为通过某种组织解决问题更容易。在我的团队中,我们从不直接推送任何东西,而是始终创建拉取请求。这可以确保至少有人在代码合并之前看一看,你也可以定义一个策略,只允许你的“伙伴”合并拉取请求。

<强>更新

GitHub now announced他们将推出一项名为protected branches的新功能。多年来,Atlassian Stash等其他git发行版中一直存在此功能。它将允许您保护一些分支免受推动。但是,它仍然不允许对各个分支进行完整的基于ACL的保护。因此,如果您不想依赖上述大纲的组织解决方案,您可能需要检查此功能。

答案 1 :(得分:9)

注意:Protected branches and required status checks(2015年9月3日)将允许您保护分支

  • 反对强行推送
  • 反对删除
  • 针对合并的更改,直到所需的状态检查通过

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

自2016年3月起,commented位于Sander下方,您有 User and team restrictions

  

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

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

答案 2 :(得分:3)

这正是forking的设计目标。您将保护主存储库,并且您将允许所有贡献者对该存储库具有读取权限。那些贡献者会分配回购,并将他们的更改推送到主回购的个人副本。当他们准备将代码引入主存储库时,他们会向主仓库提交拉取请求。在这种情况下,主项目的所有者可以完成拉取请求。