Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

Managing a branch protection rule

You can create a branch protection rule to enforce certain workflows for one or more branches, such as requiring an approving review or passing status checks for all pull requests merged into the protected branch.

谁可以使用此功能

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. 创建分支保护规则

    • 创建分支规则时,指定的分支不必是仓库中现有的分支。
       1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。 1. 在存储库名称下,单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="The gear icon" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>“设置”。
      
      “存储库设置”按钮
  2. 在边栏的“代码和自动化”部分中,单击“ 分支”。

  3. 在“分支保护规则”旁边,单击“添加规则”。

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

    • (可选)启用所需的拉取请求。 在“保护匹配分支”下,选择“合并前需要拉取请求”。
  5. 拉取请求审阅限制复选框

    • (可选)若需要在合并拉取请求之前审批,选择“需要审批”,单击“合并前所需的审批数”下拉菜单,然后选择希望分支上要求的审批审阅数 。 用于选择必需审阅审批数量的下拉菜单 (可选)若要在将代码修改提交推送到分支时关闭拉取请求审批审阅,选择“推送新提交时关闭旧拉取请求审批”。 “推送新提交时关闭旧拉取请求审批”复选框
    • (可选)若要在拉取请求影响具有指定所有者的代码时要求代码所有者审阅,请选择“要求代码所有者审阅”。 有关详细信息,请参阅“关于代码所有者”。 要求代码所有者审阅
    • (可选)若要让特定参与者在需要时将代码推送到分支而不创建拉取请求,选择“允许指定参与者绕过所需的拉取请求”。 然后,搜索并选择应被允许跳过创建拉取请求的参与者。 “允许特定参与者绕过拉取请求要求”复选框 (可选)如果存储库是组织的一部分,选择“限制可以关闭拉取请求审阅的人员”。
    • 然后,搜索并选择有权忽略拉取请求审查的参与者。 有关详细信息,请参阅“关闭拉取请求审阅”。 “限制可以关闭拉取请求审阅的人员”复选框 (可选)启用必需状态检查。
    • 有关详细信息,请参阅“关于状态检查”。 选择“合并前需要通过状态检查”。
    • 必需状态检查选项 (可选)若要确保使用受保护分支上的最新代码测试拉取请求,选择“要求分支在合并前保持最新”。
  6. 宽松或严格的必需状态复选框 搜索状态检查,选择您想要求的检查。

  7. 可用状态检查的搜索界面,以及所需检查的列表 (可选)选择“合并前需要对话解决”。

  8. “合并前需要对话解决”选项 (可选)选择“需要签名提交”。

  9. 需要签名提交选项 (可选)选择“需要线性历史记录”。

    需要线性历史记录选项 (可选)若要选择在合并之前必须将更改成功部署到哪些环境,选择“需要在合并之前部署成功”,然后选择环境。

    • 要求成功部署选项
  10. (可选)选择“会将上述规则应用于管理员“将上述规则应用于管理员”复选框

    • (可选)启用分支限制。 选择“限制可推送到匹配分支的人员”。

    • “分支限制”复选框 搜索并选择有权限推送到受保护分支或创建匹配分支的人员、团队或应用。

    • 分支限制搜索

    • (可选)在“适用于包括管理员在内的所有人的规则”下,选择“允许强制推送”。 允许强制推送选项 然后,选择可以强制推送到分支的人员。 选择“所有人”,允许至少具有存储库写入权限的人强制推送到分支,包括具有管理员权限的人员。

      选择“指定可以强制推送的人员”,仅允许特定参与者强制推送到分支。

  11. 然后,搜索并选择这些参与者。 用于指定可以强制推送的人员的选项的屏幕截图

  12. 有关强制推送的详细信息,请参阅“允许强制推送”。

(可选)选择“允许删除”。

允许分支删除选项

  1. 单击“创建”。 编辑分支保护规则

    1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。 1. 在存储库名称下,单击 “设置”。 “存储库设置”按钮
  2. 在边栏的“代码和自动化”部分中,单击“ 分支”。

  3. 在要编辑的分支保护规则的右侧,单击“编辑”。 “编辑”按钮

对分支保护规则进行所需的更改。

单击“保存更改”。

  1. “保存更改”按钮 删除分支保护规则