👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
文章版本: Enterprise Server 2.19

配置受保护分支和必需状态检查

您可以启用受保护分支来限制分支操作,以及在分支合并到拉取请求中之前或在将本地分支上的提交推送到受保护远程分支之前强制执行必需状态检查。

本文内容

Were you able to find what you were looking for?

任何对仓库有管理员权限的人都可以启用分支限制。

为仓库启用受保护分支

  1. 在 GitHub Enterprise 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)
    仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)
    仓库选项子菜单
  4. 在“Branch protection rules(分支保护规则)”旁边,单击 Add rule(添加规则)
    添加分支保护规则按钮
  5. 在“Branch name pattern(分支名称模式)”下,输入您要保护的分支名称或模式。
    分支规则字段
  6. 单击 Create(创建)

必需状态检查的类型

必需状态检查的类型设置合并要求考虑因素
严格选中 Require branches to be up-to-date before merging(合并前需要分支保持最新状态)复选框。在合并之前,必须使用基础分支使分支保持最新状态。这是必需状态检查的默认行为。 可能需要更多构建,因为在其他协作者将拉取请求合并到受保护基础分支后,您需要使头部分支保持最新状态。
宽松选中 Require branches to be up-to-date before merging(合并前需要分支保持最新状态)复选框。在合并之前,必使用基础分支使分支保持最新状态。您将需要更少的构建,因为在其他协作者合并拉取请求后,您不需要使头部分支保持最新状态。 如果存在与基础分支不兼容的变更,则在合并分支后,状态检查可能会失败。
已禁用选中 Require status checks to pass before merging(合并前需要状态检查通过)复选框。分支没有合并限制。如果未启用必需状态检查,协作者可以随时合并分支,无论它是否使用基础分支保持最新状态。 这增加了不兼容变更的可能性。

启用必需状态检查

  1. 在 GitHub Enterprise 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)
    仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)
    仓库选项子菜单
  4. 在“Branch protection rules(分支保护规则)”旁边,单击 Add rule(添加规则)
    添加分支保护规则按钮
  5. 在“Branch name pattern(分支名称模式)”下,输入您要保护的分支名称或模式。
    分支规则字段
  6. 选中 Require status checks to pass before merging(合并前必需状态检查通过)
    必需状态检查选项
  7. 从可用状态检查列表中,选择您想要设为必需的状态检查。
    可用状态检查列表
  8. 视情况可选择 Include administrators(包括管理员)。 这将强制执行所有配置的仓库管理员限制。
    包括管理员复选框
  9. 视情况可以取消选中 Require branches to be up to date before merging(在合并前要求分支保持最新状态)。 如果选中,则可确保使用基础分支上的最新代码来测试分支。
    宽松或严格的必需状态复选框
  10. (可选)选择 Restrict who can push to matching branches(限制谁可以推送到匹配的分支)
    分支限制复选框
  11. 搜索并选择将有权推送到受保护分支的人员、团队或应用。
    分支限制搜索
  12. 单击 Create(创建)

提示:要成功将拉取请求合并到已启用必需状态检查的基本分支中,必须使用基本分支更新拉取请求的头部分支。

Were you able to find what you were looking for?

问问别人

找不到要找的内容?

联系我们