Help us learn about your current experience with the documentation. Take the survey.

分支规则

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

GitLab 提供了多种方法来保护单个分支。这些方法确保你的分支从创建到删除都受到监督和质量检查:

  • 为项目的 默认分支 应用增强的安全和保护。
  • 配置 受保护分支 以:
    • 限制谁可以推送和合并到分支。
    • 管理用户是否可以对分支进行强制推送。
    • 管理是否可以直接将 CODEOWNERS 文件中列出的文件的更改推送到分支。
  • 配置 审批规则 来管理审查要求,并实施 与安全相关的审批
  • 集成第三方 状态检查 以确保你的分支内容符合你定义的质量标准。

你可以通过以下方式管理分支:

  • 使用 GitLab 用户界面。
  • 使用命令行上的 Git。
  • 使用 Branches API

查看分支规则

分支规则概览页面显示所有配置了保护的分支及其保护方法:

Example of a branch with configured protections

先决条件:

  • 你必须拥有项目的 Maintainer(维护者)角色或更高。

要查看分支规则概览列表:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules 以查看所有受保护的分支。

查看分支规则详情

要查看单个分支的分支规则和保护:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules 以查看所有受保护的分支。
  4. 识别你想要的分支并选择 View details

创建分支规则

此功能的可用性由功能标志控制。 有关更多信息,请参阅历史记录。

先决条件:

  • 你必须拥有项目的 Maintainer(维护者)角色或更高。

要创建分支规则:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules
  4. 选择 Add branch rule
  5. 选择以下选项之一:
    • 输入特定的分支名称或模式:
      1. 选择 Branch name or pattern
      2. Create branch rule 下拉列表中,选择一个分支名称或使用 * 创建 通配符
    • 保护项目中的所有分支:
      1. 选择 All branches
      2. 在规则的详情页面上,在 Merge request approvals 下,输入规则所需的审批数量。
    • 保护项目中已指定为受保护的所有分支:
      1. 选择 All protected branches
      2. 在规则的详情页面上,在 Merge request approvals 下,输入规则所需的审批数量。

添加分支规则保护

不适用于 all branches

要为新分支添加保护:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules
  4. 选择 Add branch rule
  5. 选择 All protected branchesBranch name or pattern 之一。
  6. 选择 Create protected branch

添加审批规则

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

不适用于 all branches

先决条件:

  • 你必须拥有项目的 Maintainer(维护者)角色或更高。

要添加合并请求审批规则:

  1. 分支规则详情 页面,转到 Merge request approvals 部分。
  2. Approval rules 部分,选择 Add approval rule
  3. 在右侧边栏,完成以下字段:
    • 输入 Rule name

    • Required number of approvals 中,输入一个值(0-100)。

      值为 0 会使 规则变为可选,而任何大于 0 的值都会创建必需规则。 所需审批的最大数量为 100

    • 选择有资格审批的 用户或组

      GitLab 会根据合并请求更改的文件的先前作者来建议审批者。

  4. 选择 Save changes

有关更多信息,请参阅 审批规则

编辑压缩提交选项

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

先决条件:

  • 你必须拥有项目的 Maintainer(维护者)角色或更高。
  • 在 GitLab Free 中,只有当分支规则目标为 All branches 时,此功能才可用。
  • 在 GitLab Premium 和 GitLab Ultimate 中,此功能对所有分支规则都可用。

要编辑压缩选项:

  1. 分支规则详情 页面,转到 Squash commits when merging 部分。

  2. 选择 Edit

  3. 选择以下选项之一:

    • Do not allow:不允许压缩,复选框被隐藏。
    • Allow:复选框可见且默认未选中。
    • Encourage:复选框可见且默认选中。
    • Require:始终执行压缩。复选框可见且选中,用户无法更改。
  4. 选择 Save changes

添加状态检查服务

  • Tier: Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

不适用于 all protected branches

要添加状态检查服务:

  1. 分支规则详情 页面,转到 Status checks 部分。

  2. 选择 Add status check

  3. 输入 Service name

  4. API to check 字段中,输入 URL。

    你应该使用 HTTPS URL 来保护传输中的合并请求数据。

Branch rules status checks

有关更多信息,请参阅 External status checks

编辑分支规则目标

此功能的可用性由功能标志控制。 有关更多信息,请参阅历史记录。

先决条件:

  • 你必须拥有项目的 Maintainer(维护者)角色或更高。

要编辑分支规则目标:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules 以查看所有受保护的分支。
  4. 识别你想要的分支并选择 View details
  5. Rule target 部分,选择 Edit
  6. 根据需要编辑信息。
  7. 选择 Update

编辑分支规则保护

不适用于 all branches

要编辑分支规则保护:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules 以查看所有受保护的分支。
  4. 识别你想要的分支并选择 View details
  5. Protect branch 部分,选择以下选项之一:
    • Allowed to merge,选择 Edit
      1. 选择可以合并到此分支的角色。
      2. 选择 Save changes
    • Allowed to push and merge,选择 Edit
      1. 选择可以合并到此分支的角色。
      2. 如有需要,搜索以添加 Deploy keys
      3. 选择 Save changes

在 GitLab Premium 和 Ultimate 中,你还可以将组或单个用户添加到 Allowed to mergeAllowed to push and merge

有关分支保护控制的更多信息,请参阅 Protected branches

删除分支规则

此功能的可用性由功能标志控制。 有关更多信息,请参阅历史记录。

删除分支规则不适用于目标为 all branches 的规则。

先决条件:

  • 你必须拥有项目的 Maintainer(维护者)角色或更高。

要删除分支规则:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Repository
  3. 展开 Branch rules
  4. 在要删除的规则旁边,选择 View details
  5. 在右上角,选择 Delete rule
  6. 在确认对话框中,选择 Delete branch rule

相关主题