此版本的 GitHub Enterprise 已停止服务 2021-09-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

管理分支保护规则

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

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 的公共和私有仓库。

关于分支保护规则

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

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

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

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

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

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

创建分支保护规则

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

  1. 在 GitHub Enterprise Server 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单
  4. 在“Branch protection rules(分支保护规则)”旁边,单击 Add rule(添加规则)添加分支保护规则按钮
  5. 在“Branch name pattern(分支名称模式)”下,输入您要保护的分支名称或模式。 分支规则字段
  6. (可选)启用必需拉取请求审查。
    • 在“Protect matching branches(保护匹配分支)”下,选择 Require pull request reviews before merging(合并前必需拉取请求审查)拉取请求审查限制复选框
    • 单击 Required approving reviews(必需批准审查)下拉菜单,然后选择要对分支要求的批准审查数量。 用于选择必需审查批准数量的下拉菜单
    • (可选)要在将代码修改提交推送到分支时忽略拉取请求批准审查,请选择 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 signed commits(必需签名提交)必需签名提交选项
  9. (可选)选择 Require linear history(必需线性历史记录)必需的线性历史记录选项
  10. 视情况可选择 Include administrators(包括管理员)包括管理员复选框
  11. (可选) 启用分支限制。
    • 选择 Restrict who can push to matching branches(限制谁可以推送到匹配分支)分支限制复选框
    • 搜索并选择有权限推送到受保护分支的人员、团队或应用程序。 分支限制搜索
  12. (可选)在“Rules applied to everyone including administrators(适用于包括管理员在内的所有人规则)”下,选择 Allow force pushes(允许强制推送)允许强制推送选项
  13. (可选)选择 Allow deletions(允许删除)允许分支删除选项
  14. 单击 Create(创建)

编辑分支保护规则

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

删除分支保护规则

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