Help us learn about your current experience with the documentation. Take the survey.
GitLab 快捷操作
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
快捷操作提供基于文本的快捷方式,用于执行 GitLab 中的常见操作。 快捷操作:
- 无需使用用户界面即可执行常见操作。
- 支持处理 issues、merge requests、epics 和 commits。
- 在保存描述或评论时自动运行。
- 响应特定上下文和条件。
- 在单独行输入时支持处理多个命令。
例如,您可以使用快捷操作来:
- 分配用户。
- 添加标签。
- 设置截止日期。
- 更改状态。
- 设置其他属性。
每个命令以正斜杠(/)开头,且必须单独输入一行。
许多快捷操作接受参数,您可以使用引号(")或特定格式输入参数。
参数
许多快捷操作需要参数。例如,/assign 快捷操作需要用户名。GitLab 在快捷操作中使用 自动补全字符,通过提供可用值列表帮助用户输入参数。
如果手动输入参数,必须用双引号(")括起来,除非参数仅包含以下字符:
- ASCII 字母
- 数字(0-9)
- 下划线(
_)、连字符(-)、问号(?)、点(.)、和号(&)或 at 符号(@)
参数区分大小写。自动补全会自动处理大小写和引号插入。
Issues、合并请求和史诗
以下快捷操作适用于描述、讨论和线程。部分快捷操作可能并非所有订阅层级都可用。
| Command | Issue | Merge request | Epic | Action |
|---|---|---|---|---|
/add_child <item> |
Yes | No | Yes | 将 <item> 添加为子项。<item> 值应为 #item、group/project#item 或项目的 URL 格式。对于 issues,可添加任务和 OKR。Issues 的新外观 必须启用。对于 epics,可添加 issues、任务和 OKR。可同时添加多个工作项作为子项。 |
/add_contacts [contact:email1@example.com] [contact:email2@example.com] |
Yes | No | No | 添加一个或多个活跃的 CRM 联系人。 |
/add_email email1 email2 |
Yes | No | No | 添加最多六个 邮件参与者。此操作需启用功能标志 issue_email_participants。不支持在 issue 模板中使用。 |
/approve |
No | Yes | No | 批准合并请求。 |
/assign @user1 @user2 |
Yes | Yes | No | 分配一个或多个用户。 |
/assign me |
Yes | Yes | No | 分配给自己。 |
/assign_reviewer @user1 @user2 or /reviewer @user1 @user2 |
No | Yes | No | 分配一个或多个用户作为审查者。 |
/assign_reviewer me or /reviewer me |
No | Yes | No | 分配自己作为审查者。 |
/blocked_by <item1> <item2> |
Yes | No | Yes | 将项目标记为被其他项目阻塞。<item> 值应为 #item、group/project#item 或完整 URL。(在 GitLab 16.0 中引入)。 |
/blocks <item1> <item2> |
Yes | No | Yes | 将项目标记为阻塞其他项目。<item> 值应为 #item、group/project#item 或完整 URL。(在 GitLab 16.0 中引入)。 |
/board_move ~column |
Yes | No | No | 将 issue 移动到看板上的列。项目必须只有一个 issue 看板。 |
/cc @user |
Yes | Yes | Yes | 提及用户。此命令不执行任何操作。可改为输入 CC @user 或仅 @user。 |
/clear_health_status |
Yes | No | Yes | 清除 健康状态。 |
/clear_weight |
Yes | No | No | 清除权重。 |
/clone <path/to/group_or_project> [--with_notes] |
Yes | No | Yes | 将工作项克隆到指定组或项目,若未提供参数则克隆到当前项目。尽可能复制数据,只要目标包含等效对象(如标签、里程碑或 epics)。除非提供 --with_notes 参数,否则不复制评论或系统备注。 |
/close |
Yes | Yes | Yes | 关闭。 |
/confidential |
Yes | No | Yes | 将 issue 或 epic 标记为机密。 |
/convert_to_ticket <email address> |
Yes | No | No | 将 issue 转换为 Service Desk 工单。(在 GitLab 16.9 中引入) |
/copy_metadata <!merge_request> |
Yes | Yes | No | 从项目中的另一个合并请求复制标签和里程碑。 |
/copy_metadata <#item> |
Yes | Yes | Yes | 从项目中的另一个项目复制标签和里程碑。 |
/create_merge_request <branch name> |
Yes | No | No | 创建从当前 issue 开始的新合并请求。 |
/done |
Yes | Yes | Yes | 将待办事项标记为完成。 |
/draft |
No | Yes | No | 设置 草稿状态。 |
/due <date> |
Yes | No | Yes | 设置截止日期。有效 <date> 示例包括 in 2 days、this Friday 和 December 31st。更多示例请参见 Chronic。 |
/duplicate <item> |
Yes | No | Yes | 关闭此项目并标记为与 <item> 相关且为其副本。 |
/epic <epic> or /set_parent <epic> |
Yes | No | Yes | 将项目添加到 epic <epic> 作为子项。<epic> 值应为 &epic、#epic、group&epic、group#epic 或 epic 的 URL。 |
/estimate <time> or /estimate_time <time> |
Yes | Yes | Yes | 设置时间估算。例如 /estimate 1mo 2w 3d 4h 5m。更多信息请参见 时间跟踪。 |
/health_status <value> |
Yes | No | Yes | 设置 健康状态。<value> 的有效选项为 on_track、needs_attention 和 at_risk。 |
/iteration *iteration:<iteration ID> or <iteration name> |
Yes | No | No | 设置迭代。例如,设置 Late in July 迭代:/iteration *iteration:"Late in July"。 |
/iteration [cadence:<iteration cadence ID> or <iteration cadence name>] <--current or --next> |
Yes | No | No | 将迭代设置为引用迭代周期的当前或下一个迭代。例如,/iteration [cadence:"Team cadence"] --current 将迭代设置为名为 “Team cadence” 的迭代周期的当前迭代。(在 GitLab 16.9 中引入)。 |
/iteration <--current or --next> |
Yes | No | No | 当组有一个迭代周期时,将迭代设置为当前或下一个迭代。例如,/iteration --current 将迭代设置为迭代周期的当前迭代。(在 GitLab 16.9 中引入)。 |
/label ~label1 ~label2 or /labels ~label1 ~label2 |
Yes | Yes | Yes | 添加一个或多个标签。标签名也可以不以波浪号(~)开头,但不支持混合语法。 |
/link |
Yes | No | No | 向事件中的 关联资源 添加链接和描述。 |
/lock |
Yes | Yes | Yes | 锁定讨论。 |
/merge |
No | Yes | No | 合并更改。根据项目设置,这可能是 在流水线成功时,或添加到 合并流水线。 |
/milestone %milestone |
Yes | Yes | No | 设置里程碑。 |
/move <path/to/group_or_project> |
Yes | No | Yes | 将工作项移动到其他组或项目。移动到具有不同访问规则的位置时请谨慎。移动工作项前,确保其不包含敏感数据。 |
/page <policy name> |
Yes | No | No | 启动事件的升级流程。 |
/promote_to_incident |
Yes | No | No | 将 issue 提升为事件。创建新 issue 时也可使用此快捷操作。 |
/promote |
Yes | No | No | 将 issue 提升为 epic。如果启用了 Issues 的新外观,请使用 /promote_to epic。 |
/publish |
Yes | No | No | 将 issue 发布到关联的 状态页面。 |
/react :emoji: |
Yes | Yes | Yes | 切换表情符号反应。(在 GitLab 16.7 中重命名 自 /award。/award 仍作为别名命令可用。 |
/ready |
No | Yes | No | 设置 就绪状态。 |
/reassign @user1 @user2 |
Yes | Yes | No | 将当前分配者替换为指定的用户。 |
/reassign_reviewer @user1 @user2 |
No | Yes | No | 将当前审查者替换为指定的用户。 |
/rebase |
No | Yes | No | 将源分支变基到目标分支的最新提交。帮助信息请参见 故障排除指南。 |
/relabel ~label1 ~label2 |
Yes | Yes | Yes | 将当前标签替换为指定的标签。 |
/relate <item1> <item2> |
Yes | No | Yes | 将项目标记为相关。<item> 值应为 #item、group/project#item 或完整 URL。 |
/remove_child <item> |
Yes | No | Yes | 移除 <item> 作为子项。<item> 值应为 #item、group/project#item 或项目的 URL。对于 issues,Issues 的新外观 必须启用。 |
/remove_contacts [contact:email1@example.com] [contact:email2@example.com] |
Yes | No | No | 移除一个或多个 CRM 联系人 |
/remove_due_date |
Yes | No | No | 移除截止日期。 |
/remove_email email1 email2 |
Yes | No | No | 移除最多六个 邮件参与者。此操作需启用功能标志 issue_email_participants。不支持在 issue 模板、合并请求或 epics 中使用。 |
/remove_estimate or /remove_time_estimate |
Yes | Yes | Yes | 移除时间估算。 |
/remove_iteration |
Yes | No | No | 移除迭代。 |
/remove_milestone |
Yes | Yes | No | 移除里程碑。 |
/remove_parent |
Yes | No | Yes | 从项目中移除父项。对于 issues,Issues 的新外观 必须启用。 |
/remove_time_spent |
Yes | Yes | Yes | 移除已花费时间。 |
/remove_zoom |
Yes | No | No | 从此 issue 中移除 Zoom 会议。 |
/reopen |
Yes | Yes | Yes | 重新打开。 |
/request_review @user1 @user2 |
No | Yes | No | 分配或请求一个或多个用户进行新的审查。 |
/request_review me |
No | Yes | No | 分配或请求自己进行新的审查。 |
/set_parent <item> |
Yes | No | Yes | 设置父项。<item> 值应为 #IID、引用或项目的 URL。对于 issues,Issues 的新外观 必须启用。 |
/severity <severity> |
Yes | No | No | 设置严重性。Issue 类型必须为 Incident。<severity> 的选项为 S1 … S4、critical、high、medium、low、unknown。 |
/shrug |
Yes | Yes | Yes | 添加 ¯\_(ツ)_/¯。 |
/spend <time> [<date>] or /spend_time <time> [<date>] |
Yes | Yes | Yes | 添加或减少已花费时间。可选地,指定花费时间的日期。例如 /spend 1mo 2w 3d 4h 5m 2018-08-26 或 /spend -1h 30m。更多信息请参见 时间跟踪。 |
/status <value> |
Yes | No | No | 设置 状态。<value> 的有效选项包括为命名空间设置的状态选项。(在 GitLab 18.2 中引入,功能标志名为 work_item_status_feature_flag)。 |
/submit_review |
No | Yes | No | 提交待审查的审查。 |
/subscribe |
Yes | Yes | Yes | 订阅通知。 |
/tableflip |
Yes | Yes | Yes | 添加 (╯°□°)╯︵ ┻━┻。 |
/target_branch <local branch name> |
No | Yes | No | 设置目标分支。 |
/timeline <timeline comment> | <date(YYYY-MM-DD)> <time(HH:MM)> |
Yes | No | No | 向此事件添加时间线事件。例如 /timeline DB load spiked | 2022-09-07 09:30。 |
/title <new title> |
Yes | Yes | Yes | 更改标题。 |
/todo |
Yes | Yes | Yes | 添加待办事项。 |
/unapprove |
No | Yes | No | 取消批准合并请求。 |
/unassign @user1 @user2 |
Yes | Yes | No | 移除特定分配者。 |
/unassign_reviewer @user1 @user2 or /remove_reviewer @user1 @user2 |
No | Yes | No | 移除特定审查者。 |
/unassign_reviewer me |
No | Yes | No | 移除自己作为审查者。 |
/unassign_reviewer or /remove_reviewer |
No | Yes | No | 移除所有审查者。 |
/unassign |
No | Yes | No | 移除所有分配者。 |
/unlabel ~label1 ~label2 or /remove_label ~label1 ~label2 |
Yes | Yes | Yes | 移除指定标签。 |
/unlabel or /remove_label |
Yes | Yes | Yes | 移除所有标签。 |
/unlink <item> |
Yes | No | Yes | 移除与提供的 issue 的链接。<item> 值应为 #item、group/project#item 或完整 URL。(在 GitLab 16.1 中引入)。 |
/unlock |
Yes | Yes | Yes | 解锁讨论。 |
/unsubscribe |
Yes | Yes | Yes | 取消订阅通知。 |
/weight <value> |
Yes | No | No | 设置权重。有效值为整数如 0、1 或 2。 |
/zoom <Zoom URL> |
Yes | No | No | 为此 issue 或事件添加 Zoom 会议。GitLab Premium 用户可在 向事件添加 Zoom 链接 时添加简短描述。 |
工作项
GitLab 中的工作项包括:
- 任务
- OKR
- 史诗(参见 Issues、合并请求和史诗)
以下快捷操作可在编辑或评论工作项时通过描述字段应用。
| Command | Task | Objective | Key Result | Action |
|---|---|---|---|---|
/assign @user1 @user2 |
Yes | Yes | Yes | 分配一个或多个用户。 |
/assign me |
Yes | Yes | Yes | 分配给自己。 |
/add_child <work_item> |
No | Yes | No | 添加到 <work_item> 的子项。<work_item> 值应为 #item、group/project#item 或工作项的 URL。可同时添加多个工作项作为子项。(在 GitLab 16.5 中引入)。 |
/award :emoji: |
Yes | Yes | Yes | 切换表情符号反应。(在 GitLab 16.5 中引入) |
/checkin_reminder <cadence> |
No | Yes | No | 安排 检查提醒。选项为 weekly、twice-monthly、monthly 或 never(默认)。(在 GitLab 16.4 中引入,功能标志名为 okrs_mvc 和 okr_checkin_reminders)。 |
/clear_health_status |
Yes | Yes | Yes | 清除 健康状态。 |
/clear_weight |
Yes | No | No | 清除权重。 |
/close |
Yes | Yes | Yes | 关闭。 |
/confidential |
Yes | Yes | Yes | 将工作项标记为机密。在 GitLab 16.4 中引入。 |
/copy_metadata <work_item> |
Yes | Yes | Yes | 从同一命名空间中的另一个工作项复制标签和里程碑。<work_item> 值应为 #item 或工作项的 URL。(在 GitLab 17.9 中引入)。 |
/done |
Yes | Yes | Yes | 将待办事项标记为完成。在 GitLab 16.2 中引入。 |
/due <date> |
Yes | No | Yes | 设置截止日期。有效 <date> 示例包括 in 2 days、this Friday 和 December 31st。 |
/health_status <value> |
Yes | Yes | Yes | 设置 健康状态。<value> 的有效选项为 on_track、needs_attention 或 at_risk。 |
/label ~label1 ~label2 or /labels ~label1 ~label2 |
Yes | Yes | Yes | 添加一个或多个标签。标签名也可以不以波浪号(~)开头,但不支持混合语法。 |
/promote_to <type> |
Yes | No | Yes | 将工作项提升为指定类型。<type> 的可用选项:issue(提升任务)或 objective(提升关键结果)。(在 GitLab 16.1 中引入)。 |
/reassign @user1 @user2 |
Yes | Yes | Yes | 将当前分配者替换为指定的用户。 |
/relabel ~label1 ~label2 |
Yes | Yes | Yes | 将当前标签替换为指定的标签。 |
/remove_due_date |
Yes | No | Yes | 移除截止日期。 |
/remove_child <work_item> |
No | Yes | No | 移除子项 <work_item>。<work_item> 值应为 #item、group/project#item 或工作项的 URL。(在 GitLab 16.10 中引入)。 |
/remove_parent |
Yes | No | Yes | 移除父工作项。在 GitLab 16.9 中引入)。 |
/reopen |
Yes | Yes | Yes | 重新打开。 |
/set_parent <work_item> |
Yes | No | Yes | 将父工作项设置为 <work_item>。<work_item> 值应为 #item、group/project#item 或工作项的 URL。(在 GitLab 16.5 中引入)。启用 Issues 新外观 后,/epic 作为别名 在 GitLab 17.10 中引入)。 |
/shrug |
Yes | Yes | Yes | 添加 ¯\_(ツ)_/¯。 |
/status <value> |
Yes | No | No | 设置 状态。<value> 的有效选项包括为命名空间设置的状态选项。(在 GitLab 18.2 中引入,功能标志名为 work_item_status_feature_flag)。 |
/subscribe |
Yes | Yes | Yes | 订阅通知。在 GitLab 16.4 中引入) |
/tableflip |
Yes | Yes | Yes | 添加 (╯°□°)╯︵ ┻━┻。 |
/title <new title> |
Yes | Yes | Yes | 更改标题。 |
/todo |
Yes | Yes | Yes | 添加待办事项。在 GitLab 16.2 中引入)。 |
/type |
Yes | Yes | Yes | 将工作项转换为指定类型。<type> 的可用选项包括 issue、task、objective 和 key result。在 GitLab 16.0 中引入)。 |
/unassign @user1 @user2 |
Yes | Yes | Yes | 移除特定分配者。 |
/unassign |
No | Yes | Yes | 移除所有分配者。 |
/unlabel ~label1 ~label2 or /remove_label ~label1 ~label2 |
Yes | Yes | Yes | 移除指定标签。 |
/unlabel or /remove_label |
Yes | Yes | Yes | 移除所有标签。 |
/unlink |
Yes | Yes | Yes | 移除与提供的工作项的链接。<work item> 值应为 #work_item、group/project#work_item 或完整工作项 URL。在 GitLab 17.8 中引入)。 |
/unsubscribe |
Yes | Yes | Yes | 取消订阅通知。在 GitLab 16.4 中引入) |
/weight <value> |
Yes | No | No | 设置权重。<value> 的有效选项包括 0、1 和 2。 |
提交评论
您可以在评论单个 commit 时使用快捷操作。这些快捷操作仅在提交评论线程中有效,不适用于提交消息或其他 GitLab 上下文。
要在提交评论中使用快捷操作:
- 通过从提交列表、合并请求或其他提交链接中选择 commit,进入 commit 页面。
- 在 commit 页面底部的评论框中输入您的快捷操作。
- 选择 Comment。
以下快捷操作适用于提交评论:
| Command | Action |
|---|---|
/tag v1.2.3 <message> |
创建指向被评论 commit 的 Git 标签,并附带可选消息。 |
以下是 Git 标签示例:
安全修复后准备发布。
/tag v2.1.1 安全修复补丁发布
此评论创建了一个名为 `v2.1.1` 的 Git 标签,指向 commit,消息为 "安全修复补丁发布"。
## 故障排除
### 快捷操作未执行
如果运行快捷操作但未生效,请检查输入时快捷操作是否出现在自动补全框中。
如果未出现,可能原因包括:
- 与快捷操作相关的功能根据您的订阅层级或组/项目的用户角色不可用。
- 快捷操作的必要条件未满足。
例如,您在没有标签的 issue 上运行 `/unlabel`。