58

我的 github 项目中有一些贡献者。我只想让他们中的一个“推动”掌握。而且这个人不是我(存储库的所有者)。有可能吗?

4

4 回答 4

38

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

如果您想解决此限制,我个人看到两个选项:

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

我认为通过一些组织更容易解决这个问题。在我的团队中,我们从不直接将任何东西推送到 master,而是总是创建拉取请求。这样可以确保在合并代码之前至少有人看一下,您还可以定义一个策略,只允许您的“人”合并拉取请求。

更新

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

于 2012-05-22T13:53:50.743 回答
12

注意:受保护的分支和所需的状态检查(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

于 2015-09-03T19:26:44.967 回答
3

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

于 2015-02-09T02:32:18.290 回答
0

我们现在可以使用“CODEOWNERS”文件来要求代码所有者审查以验证拉取请求。我们可以根据他们的 GitHub 账号设置不同的权限。

这里这里

于 2018-02-26T11:32:05.023 回答