如何保护GitHub上的“master”分支?

5
我们是一个由几个人组成的团队。每个人都在自己的特性分支上工作,当准备好时,通过 GitHub UI 合并到master中。
现在,是否有可能防止直接推送到master,而是在每个新特性准备好合并时创建一个pull request?此外,将合并限制为仅适用于开发人员的子集将非常棒。

1
最好的方法是拥有清晰的工作流程。 - Maroun
1
请查看GitHub中的角色。具有读取权限的开发人员可以在其分叉存储库中的分支上工作,并在其功能分支准备好合并时创建PR。 - houtanb
1
GitHub有一个叫做“受保护分支”的功能(https://help.github.com/articles/about-protected-branches)。它不能完全解决问题 - 例如,它无法防止任何人直接提交到“master” - 但至少是一个很好的开始。 - Enrico Campidoglio
@EnricoCampidoglio,那不幸的是并没有解决问题,因为它只适用于强制推送。 - Aley
@HBHB 我们有一个私有仓库和一个高级账户。如果我的同事之一克隆了这个仓库,它会变成公共的,对吗? - Aley
1
@Aley 不行。如果这个存储库是私有的,你的同事可以 fork 它,他们 fork 出来的存储库仍然会保持私有状态。你只需要给他们这样做的权限即可。 - houtanb
2个回答

2
此外,如果只有一部分开发人员可以合并代码,那就太好了。您可以在组织中将推送限制为特定的用户或团队(仅限英文)。这将允许您设置一个团队,可以将更改合并回主分支(master)。

branch restriction gif

另外,对于小团队,您可以考虑让每个开发人员设置客户端钩子以防止推送到远程的 master
最后,如果您使用提供预接收钩子的 GitHub Enterprise,您可以启用一个 强制通过 PR 合并代码 的钩子。

0

前往设置选项卡,点击 Branches --> 选择 Branch Protection Rules 并点击 Add Rules 按钮,分支名称模式 = master

然后勾选以下复选框

  1. 在合并之前要求拉取请求审核
  2. 需要 CODEOWNER 文件的审查。

注意: -在您的 git 顶层文件夹中添加 CODEOWNER 文件,并在其中维护可以批准像这样的 Lead 开发人员 * @apple @orange

您可以在下面的链接中了解有关 codeowner 的更多信息 https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

我们未勾选包括管理员选项,管理角色帐户可以在不经过审核的情况下进行合并。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接