如何保护github中的“master”?

问题描述 投票:0回答:5

我的 github 项目中有一些贡献者。我只想让其中之一“推”为主。而且这个人不是我(存储库的所有者)。可以做吗?

git github branch acl
5个回答
39
投票

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

如果您想解决此限制,我个人认为有两种选择:

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

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

更新

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


13
投票

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

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


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

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


3
投票

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


0
投票

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

参见这里这里


0
投票

我使用自定义指令和管道创建了一个具有搜索功能的 matselect 组件。

您可以参考下面的链接查看演示和源代码。我希望这对您有所帮助,并且欢迎任何改进建议。

演示 http://surl.li/khcpz

源代码 http://surl.li/khcrx

了解错误: 有的话请告诉我。

WIP找不到选项

© www.soinside.com 2019 - 2024. All rights reserved.