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

审查人员可以在合并请求的差异讨论区中使用 Markdown 语法提出代码更改建议。 合并请求的作者(或其他具有相应角色的用户)可以从 GitLab UI 应用任意或全部建议。 应用建议会在合并请求中添加一个提交,由提出更改建议的用户作为作者。

创建建议

  1. 在左侧边栏,选择 搜索或跳转至 并找到您的项目。

  2. 选择 代码 > 合并请求 并找到您的合并请求。

  3. 在二级菜单中,选择 更改

  4. 找到您想要更改的代码行。

    • 要选择单行,将鼠标悬停在行号上并选择 为此行添加评论 comment )。
    • 要选择多行:
      1. 将鼠标悬停在行号上,选择 为此行添加评论 comment ): 在任何差异文件行上添加评论
      2. 选择并拖动以包含所有需要的行。了解更多信息,请参阅多行建议
  5. 在评论工具栏中,选择 插入建议 doc-code )。GitLab 会在您的评论中插入一个预填充的代码块,如下所示:

    ```suggestion:-0+0
    您所选行的内容显示在这里。
    ```
  6. 编辑预填充的代码块以添加您的建议。

  7. 要立即添加评论,选择 立即添加评论,或使用键盘快捷键:

    • macOS: Shift + Command + Enter
    • 其他操作系统: Shift + Control + Enter
  8. 要在完成审查之前保持评论未发布状态,选择 开始审查,或使用键盘快捷键:

    • macOS: Command + Enter
    • 其他操作系统: Control + Enter

多行建议

当您审查合并请求差异时,可以通过以下方式在单个建议中提出对多行(最多 200 行)的更改:

  • 选择并拖动,如创建建议中所述。 GitLab 会为您创建一个建议块。
  • 选择单行,然后手动编辑建议块中的范围偏移量。

建议第一行中的范围偏移量描述了相对于所选行的行号。偏移量指定了您的建议要替换的行。 例如,此建议覆盖了评论行上方 2 行和下方 2 行:

```suggestion:-2+2
## 防止作者批准

默认情况下,合并请求的作者不能批准它。要更改此设置:
```

应用后,该建议会替换从评论行上方 2 行到下方 2 行的内容:

多行建议预览

GitLab 限制多行建议最多覆盖评论差异行上方 100 行和下方 100 行。 这允许每个建议最多更改 201 行。

多行评论会在评论正文上方显示评论的行号:

多行评论选择显示在评论上方

使用富文本编辑器

当您插入建议时,使用 WYSIWYG 富文本编辑器 在 UI 中上下移动源文件的行号。

要添加或删除更改的行,在 从行 旁边选择 +-

多行建议预览

应用建议

先决条件:

  • 您必须是合并请求的作者,或至少拥有项目的 Developer 角色。

要从合并请求中直接应用建议的更改:

  1. 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
  2. 选择 代码 > 合并请求 并找到您的合并请求。
  3. 找到包含您要应用的建议的评论。
    • 要单独应用建议,选择 应用建议
    • 要在单个提交中应用多个建议,选择 将建议添加到批量处理
  4. 可选。提供自定义提交消息来描述您的更改。如果您 不提供自定义消息,它将使用默认提交消息。
  5. 选择 应用

应用建议后,GitLab 会:

  • 将建议标记为 已应用
  • 解决评论讨论区。
  • 创建包含更改的新提交。
  • (如果用户具有 Developer 角色)将建议的更改直接推送到 合并请求分支中的代码库。

配置已应用建议的提交消息

GitLab 在应用建议时使用默认提交消息,但您可以更改它。 此消息支持占位符。例如,默认消息 Apply %{suggestions_count} suggestion(s) to %{files_count} file(s) 如果您将三个建议应用到两个不同的文件,会渲染为:

Apply 3 suggestion(s) to 2 file(s)

从分支创建的合并请求使用目标项目中定义的模板。 要满足您的项目需求,请自定义这些消息并包含其他占位符变量。

先决条件:

  • 您必须拥有 Maintainer 角色。

操作步骤:

  1. 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
  2. 选择 设置 > 合并请求
  3. 滚动到 合并建议,并修改文本以满足您的需求。 有关您可以在消息中使用的占位符列表,请参阅支持的变量

支持的变量

已应用建议的提交消息模板支持这些变量:

变量 描述 输出示例
%{branch_name} 应用建议的分支名称。 my-feature-branch
%{files_count} 应用建议的文件数量。 2
%{file_paths} 应用建议的文件路径。路径用逗号分隔。 docs/index.md, docs/about.md
%{project_path} 项目路径。 my-group/my-project
%{project_name} 项目的可读名称。 My Project
%{suggestions_count} 应用的建议数量。 3
%{username} 应用建议的用户名。 user_1
%{user_full_name} 应用建议的用户全名。 User 1
%{co_authored_by} Co-authored-by Git 提交尾行格式显示的建议作者姓名和邮箱。 Co-authored-by: Zane Doe <[email protected]>
Co-authored-by: Blake Smith <[email protected]>

例如,要将自定义提交消息输出为 Addresses user_1's review,请将自定义文本设置为 Addresses %{username}'s review

批量处理建议

先决条件:

  • 您必须拥有项目的角色,允许您提交到源分支。

要减少添加到分支中的提交数量,请在单个提交中应用多个建议。

  1. 在左侧边栏,选择 搜索或跳转至 并找到您的项目。

  2. 选择 代码 > 合并请求 并找到您的合并请求。

  3. 对于您要应用的每个建议,选择 将建议添加到批量处理

  4. 可选。要移除建议,选择 从批量处理中移除

  5. 添加完所需建议后,选择 应用建议

    如果您应用包含多个作者更改的批量建议, resulting commit 会将您标记为作者。如果您配置项目 防止添加提交的用户批准,您将不再是此合并请求的合格审批者。

  6. 可选。为批量处理建议提供自定义提交消息来描述您的更改。如果您未指定,它将使用默认提交消息。

相关主题