管理分支保护规则

您可以创建分支保护规则对一个或多个分支实施某些工作流程,例如要求批准审查或通过状态检查才能将拉取请求合并到受保护分支。

People with admin permissions to a repository can manage branch protection rules.

受保护分支适用于具有 GitHub Free 和组织的 GitHub Free 的公共仓库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。 更多信息请参阅“GitHub 的产品”。

关于分支保护规则

您可以在仓库中为特定分支、所有分支或者与使用 fnmatch 语法指定的命名模式匹配的任何分支创建分支保护规则。 例如,要保护包含文字 release 的任何分支,您可以为 *release* 创建分支规则。

您还可以使用通配符语法 * 为仓库中的所有当前和未来分支创建规则。 由于 GitHub 对 File.fnmatch 语法使用 File::FNM_PATHNAME 标记,因此通配符与目录分隔符 (/) 不匹配。 例如,qa/* 将匹配以 qa/ 开头并包含单个斜杠的所有分支。 您可以通过 qa/**/* 包含多个斜杠,也可以通过 qa**/**/* 扩展 qa 字符串,使规则更具包容性。 有关分支规则语法选项的更多信息,请参阅 fnmatch 文档

如果仓库有多个影响相同分支的受保护分支规则,则包含特定分支名称的规则具有最高优先级。 如果有多个受保护分支规则引用相同的特定规则名称,则最先创建的分支规则优先级更高。

提及特殊字符(如 *?])的受保护分支按其创建的顺序应用,因此含有这些字符的规则创建时间越早,优先级越高。

要创建对现有分支规则的例外,您可以创建优先级更高的新分支保护规则,例如针对特定分支名称的分支规则。

有关每个可用分支保护设置的更多信息,请参阅“关于受保护分支”。

创建分支保护规则

创建分支规则时,指定的分支不必是仓库中现有的分支。

  1. 在 GitHub.com 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单

  4. 在“Branch protection rules(分支保护规则)”旁边,单击 Add rule(添加规则)添加分支保护规则按钮

  5. 在“Branch name pattern(分支名称模式)”下,输入您要保护的分支名称或模式。 分支规则字段

  6. Optionally, enable required pull requests.

    • Under "Protect matching branches", select Require a pull request before merging. 拉取请求审查限制复选框

    • Optionally, to require approvals before a pull request can be merged, select Require approvals, click the Required number of approvals before merging drop-down menu, then select the number of approving reviews you would like to require on the branch. 用于选择必需审查批准数量的下拉菜单

    • (可选)要在将代码修改提交推送到分支时忽略拉取请求批准审查,请选择 Dismiss stale pull request approvals when new commits are pushed(推送新提交时忽略旧拉取请求批准)在推送新提交时,关闭旧拉取请求批准的复选框

    • (可选)要在拉取请求影响具有指定所有者的代码时要求代码所有者审查,请选择 Require review from Code Owners(需要代码所有者审查)。 更多信息请参阅“关于代码所有者”。 代码所有者的必需审查

    • (可选)如果仓库属于组织,请选择 Restrict who can dismiss pull request reviews(限制谁可以忽略拉取请求审查)。 然后,搜索并选择有权忽略拉取请求审查的人员或团队。 更多信息请参阅“忽略拉取请求审查”。 限制可以忽略拉取请求审查的人员复选框

  7. (可选)启用必需状态检查。

    • 选中 Require status checks to pass before merging(合并前必需状态检查通过)必需状态检查选项
    • (可选)要确保使用受保护分支上的最新代码测试拉取请求,请选择 Require branches to be up to date before merging(要求分支在合并前保持最新)宽松或严格的必需状态复选框
    • 从可用状态检查列表中,选择您想要设为必需的检查。 可用状态检查列表
  8. (可选)选中 Require conversation resolution before merging(在合并前需要对话解决)合并选项前需要对话解决

  9. (可选)选择 Require signed commits(必需签名提交)必需签名提交选项

  10. (可选)选择 Require linear history(必需线性历史记录)必需的线性历史记录选项

  11. Optionally, to merge pull requests using a merge queue, select Require merge queue. For more information about merge queues, see "Using a merge queue." Require merge queue option

    Tip: The pull request merge queue feature is currently in limited public beta and subject to change. Organizations owners can request early access to the beta by joining the waitlist.

  12. 视情况可选择 Include administrators(包括管理员)包括管理员复选框

  13. (可选)如果仓库由组织拥有,可使用 GitHub Team 或 GitHub Enterprise Cloud 启用分支限制。

    • 选择 Restrict who can push to matching branches(限制谁可以推送到匹配分支)分支限制复选框
    • 搜索并选择有权限推送到受保护分支的人员、团队或应用程序。 分支限制搜索
  14. (可选)在“Rules applied to everyone including administrators(适用于包括管理员在内的所有人规则)”下,选择 Allow force pushes(允许强制推送)允许强制推送选项

  15. (可选)选择 Allow deletions(允许删除)允许分支删除选项

  16. 单击 Create(创建)

编辑分支保护规则

  1. 在 GitHub.com 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单
  4. 在要编辑的分支保护规则的右侧,单击 Edit(编辑)编辑按钮
  5. 对分支保护规则进行所需的更改。
  6. 单击 Save changes(保存更改)Edit message 按钮

删除分支保护规则

  1. 在 GitHub.com 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单
  4. 在要删除的分支保护规则的右侧,单击 Delete(删除)删除按钮

此文档对您有帮助吗?

隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或者, 了解如何参与。