# 使用命令行发起 Merge Request

工蜂支持在客户端使用Git push options指令,推送代码的同时可便捷发起合并请求,并支持多项 MR 参数设置:
step1: 将本地分支推送到工蜂,并同时创建合并请求

git push -o mr.create

step2: 成功创建 MR,并返回工蜂 MR 链接

remote: | View merge request for my-source-branch:                    |
remote: |     http://git.tencent.com/my-group/my-project/merge_requests/1 |

# 版本要求

需保证客户端版本不低于 Git 2.10,推荐使用 2.18 及以上版本

  • 客户端版本 2.18 及以上版本,可以使用 --push-option 或-o:
git push -o <push_option>
  • 客户端版本 2.10 到 2.17 范围内,使用 --push-option:
git push --push-option=<push_option>

# 合并请求指令

Git push options 描述
mr.create 发起 MR(目标分支默认为 default 分支)
mr.skip 跳过 MR 评审,直接 push 到目标分支(仅目标分支启用 Pre-Push 模式,且当前用户角色是分支的 master 才可用)
mr.pre_push 对于未启用 Pre-Push 模式的目标分支,通过传参的方式创建 Pre-Push 模式评审单
mr.target=<branch_name> 指定目标分支
mr.title="<title>" 设置 MR 标题
mr.description="<description>" 添加 MR 描述信息,用文本\n表示换行
mr.assign="<user>" 指定合并负责人
mr.reviewer="<user1>;<user2>" 指定评审人(与项目默认评审人不一致时,将替换默认值)
mr.necessary_reviewer="<user1>;<user2>" 指定必要评审人(与默认评审人不一致时,将替换默认值)
mr.id=<merge_request.iid> 更新指定 MR(用于区分源分支上多个开启的 MR)

注意: 1.\在 shell 命令行被双引号引用时有转义作用,所以"\\n""\n"'\n'用于mr.description时都可表示换行; 2.工蜂服务端仅对mr.description做特殊处理才支持换行,其他的参数均与原生 push-option 保持一致,不支持换行;


# 用法说明

1. 合并请求 push options 指令将不会影响代码推送的成功与否

2. 支持串联使用多个-o(或--push-option)指令,一次性完成合并请求发起或相关参数设置
示例 1:发起一个目标分支为 test 的合并请求,并邀请 zhangsan 为评审人:

git push -o mr.create -o mr.target=test -o mr.reviewer="zhangsan"

示例 2:更新已发起合并请求的标题及描述:

git push -o mr.title="The title I want" -o mr.description="The description I want"

3. 以下情况必须指定目标分支(mr.target)才能成功发起 MR(mr.create):

  • 当前推送分支(源分支)为默认分支
  • 源分支上已存在一个打开中的 MR

4. 源分支上存在多个打开中的合并请求时,应使用 mr.id 更新指定的合并请求 MR
例如:MR1:dev -> master,MR2:dev -> test,需要更新 MR1 的评审人

git push -o mr.id=1 -o mr.reviewer="new_reviewer"
lastUpdate: 12/25/2024, 10:23:33 AM