前言
在我們?nèi)粘i_發(fā)過(guò)程中需要經(jīng)常使用到Merge Request,在使用過(guò)程中我們需要來(lái)回在開發(fā)工具和UI界面之前來(lái)回切換,十分麻煩。那有沒有一種辦法可以時(shí)間直接開發(fā)開工具中直接發(fā)起Merge Request呢?
答案是有的。
使用 Git 命令方式創(chuàng)建 Merge Request
我們其實(shí)可以直接通過(guò)git push命令來(lái)實(shí)現(xiàn)創(chuàng)建Merge Request,完整命令實(shí)例如下:
git push origin feature/test_mr:feature/test_mr \
--set-upstream \
-o merge_request.create \
-o merge_request.target=master \
-o merge_request.remove_source_branch \
-o merge_request.label=fea4t \
-o "merge_request.title=fea4t(web) XM2231501-7127 插件測(cè)試" \
-o "merge_request.description='<p>背景:</p><p> http://jira.xxx.net/browse/XM2231501-7127</p><p>修改:</p><p>1. 插件測(cè)試</p><p></p><p>影響:</p><p>無(wú)</p>'"
命令解釋:
- git push origin feature/test_mr:feature/test_mr:推送本地分支 feature/test_mr 到遠(yuǎn)程倉(cāng)庫(kù) origin 的 feature/test_mr 分支。
- --set-upstream:將目標(biāo)分支設(shè)置為當(dāng)前分支的上游分支。
- -o merge_request.create:創(chuàng)建合并請(qǐng)求。
- -o merge_request.target=master:設(shè)置目標(biāo)分支為 master。
- -o merge_request.remove_source_branch:合并后刪除源分支。
- -o merge_request.label=fea4t:添加標(biāo)簽 fea4t。
- -o "merge_request.title=fea4t(web) XM2231501-7127 插件測(cè)試":設(shè)置合并請(qǐng)求標(biāo)題。
- `-o "merge_request.description='1. 插件測(cè)試'":設(shè)置合并請(qǐng)求描述。
通過(guò)執(zhí)行命令可以直接創(chuàng)建Merge Request,命令返回如下信息:
remote:
remote: View merge request for feature/test:
remote: http://git.xxx.net/xxx-project/xxx/-/merge_requests/6
remote:
remote:
remote: Project 'hr-ops-group/xxx' was moved to 'xxx-project/xxx/xxx'.
remote:
remote: Please update your Git remote:
remote:
remote: git remote set-url origin ssh://git@git.xxx.net:8011/hr-xxx/xxx/xx.git
remote:
remote:
To ssh://git.xxx.net:8011/hr-ops-xx/xxx.git
b1d535b..08a4a51 feature/test -> feature/test
分支 'feature/test' 設(shè)置為跟蹤來(lái)自 'origin' 的遠(yuǎn)程分支 'feature/test'。
通過(guò)上面的信息我們可以看到系統(tǒng)已經(jīng)自己給我們創(chuàng)建了一個(gè)MR http://git.xxx.net/xxx-project/xxx/-/merge_requests/6。
光速發(fā)起Merge Request
但是這種構(gòu)建命令的方式看起來(lái)比UI操作還麻煩,并且很容易出錯(cuò),有沒有更加簡(jiǎn)單的辦法呢?在這里給大家推薦一款I(lǐng)dea插件GitFlowPlus。他支持直接通過(guò)圖形化方式在IDEA中直接發(fā)起MR,如果遇到代碼沖突還可以在本地IDEA中直接解決,十分方便,使用示例:

image.png
GitFlowPlus,可以直接在IDEA插件市場(chǎng)上安裝,目前已經(jīng)支持2018-2023所有IDEA版本。該插件還支持光速提測(cè),光速打Tag等。
版本要求
如果您要使用自動(dòng)發(fā)起MR這個(gè)功能,那么需要保證你的Gitlab版本在11.10之上。

image.png