提出更改建议
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
审查人员可以在合并请求的差异讨论区中使用 Markdown 语法提出代码更改建议。 合并请求的作者(或其他具有相应角色的用户)可以从 GitLab UI 应用任意或全部建议。 应用建议会在合并请求中添加一个提交,由提出更改建议的用户作为作者。
创建建议
-
在左侧边栏,选择 搜索或跳转至 并找到您的项目。
-
选择 代码 > 合并请求 并找到您的合并请求。
-
在二级菜单中,选择 更改。
-
找到您想要更改的代码行。
- 要选择单行,将鼠标悬停在行号上并选择 为此行添加评论( )。
- 要选择多行:
- 将鼠标悬停在行号上,选择 为此行添加评论(
):
- 选择并拖动以包含所有需要的行。了解更多信息,请参阅多行建议。
- 将鼠标悬停在行号上,选择 为此行添加评论(
):
-
在评论工具栏中,选择 插入建议( )。GitLab 会在您的评论中插入一个预填充的代码块,如下所示:
```suggestion:-0+0 您所选行的内容显示在这里。 ``` -
编辑预填充的代码块以添加您的建议。
-
要立即添加评论,选择 立即添加评论,或使用键盘快捷键:
- macOS: Shift + Command + Enter
- 其他操作系统: Shift + Control + Enter
-
要在完成审查之前保持评论未发布状态,选择 开始审查,或使用键盘快捷键:
- macOS: Command + Enter
- 其他操作系统: Control + Enter
多行建议
当您审查合并请求差异时,可以通过以下方式在单个建议中提出对多行(最多 200 行)的更改:
- 选择并拖动,如创建建议中所述。 GitLab 会为您创建一个建议块。
- 选择单行,然后手动编辑建议块中的范围偏移量。
建议第一行中的范围偏移量描述了相对于所选行的行号。偏移量指定了您的建议要替换的行。 例如,此建议覆盖了评论行上方 2 行和下方 2 行:
```suggestion:-2+2
## 防止作者批准
默认情况下,合并请求的作者不能批准它。要更改此设置:
```应用后,该建议会替换从评论行上方 2 行到下方 2 行的内容:
GitLab 限制多行建议最多覆盖评论差异行上方 100 行和下方 100 行。 这允许每个建议最多更改 201 行。
多行评论会在评论正文上方显示评论的行号:
使用富文本编辑器
当您插入建议时,使用 WYSIWYG 富文本编辑器 在 UI 中上下移动源文件的行号。
要添加或删除更改的行,在 从行 旁边选择 + 或 -。
应用建议
先决条件:
- 您必须是合并请求的作者,或至少拥有项目的 Developer 角色。
要从合并请求中直接应用建议的更改:
- 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
- 选择 代码 > 合并请求 并找到您的合并请求。
- 找到包含您要应用的建议的评论。
- 要单独应用建议,选择 应用建议。
- 要在单个提交中应用多个建议,选择 将建议添加到批量处理。
- 可选。提供自定义提交消息来描述您的更改。如果您 不提供自定义消息,它将使用默认提交消息。
- 选择 应用。
应用建议后,GitLab 会:
- 将建议标记为 已应用。
- 解决评论讨论区。
- 创建包含更改的新提交。
- (如果用户具有 Developer 角色)将建议的更改直接推送到 合并请求分支中的代码库。
配置已应用建议的提交消息
GitLab 在应用建议时使用默认提交消息,但您可以更改它。
此消息支持占位符。例如,默认消息
Apply %{suggestions_count} suggestion(s) to %{files_count} file(s) 如果您将三个建议应用到两个不同的文件,会渲染为:
Apply 3 suggestion(s) to 2 file(s)从分支创建的合并请求使用目标项目中定义的模板。 要满足您的项目需求,请自定义这些消息并包含其他占位符变量。
先决条件:
- 您必须拥有 Maintainer 角色。
操作步骤:
- 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
- 选择 设置 > 合并请求。
- 滚动到 合并建议,并修改文本以满足您的需求。 有关您可以在消息中使用的占位符列表,请参阅支持的变量。
支持的变量
已应用建议的提交消息模板支持这些变量:
| 变量 | 描述 | 输出示例 |
|---|---|---|
%{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 <zdoe@example.com> Co-authored-by: Blake Smith <bsmith@example.com> |
例如,要将自定义提交消息输出为
Addresses user_1's review,请将自定义文本设置为
Addresses %{username}'s review。
批量处理建议
先决条件:
- 您必须拥有项目的角色,允许您提交到源分支。
要减少添加到分支中的提交数量,请在单个提交中应用多个建议。
-
在左侧边栏,选择 搜索或跳转至 并找到您的项目。
-
选择 代码 > 合并请求 并找到您的合并请求。
-
对于您要应用的每个建议,选择 将建议添加到批量处理。
-
可选。要移除建议,选择 从批量处理中移除。
-
添加完所需建议后,选择 应用建议。
如果您应用包含多个作者更改的批量建议, resulting commit 会将您标记为作者。如果您配置项目 防止添加提交的用户批准,您将不再是此合并请求的合格审批者。
-
可选。为批量处理建议提供自定义提交消息来描述您的更改。如果您未指定,它将使用默认提交消息。