gitlab快速创建Merge/Pull Request

gitlab在push一个分支到远程仓库之后会返回一个url,打开这个url可以进入创建MR的页面,但是,它把url中的中文直接删掉了,像下面这样:

gitlab快速创建Merge/Pull Request_第1张图片
git

source_branch%5D=bugfix%2F3DTouch键盘两个字没了,那我就自己搞一个吧。
要拼接这么个url,只要做三件事,一个是仓库名字,第二是source_branch当前分支,第三对source_branch进行urlencode。
仓库名字:

basename `git rev-parse --show-toplevel`

当前分支名字:

git rev-parse --abbrev-ref HEAD

拿到的分支名字末尾带了\n,必须移除:

git rev-parse --abbrev-ref HEAD | tr -d '\n'

再来urlencode:

git rev-parse --abbrev-ref HEAD | tr -d '\n' | perl -p -e 's/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg'

好了,把它们拼接起来

open "https://xxx.xx/"$(basename `git rev-parse --show-toplevel`)"/merge_requests/new?merge_request%5Bsource_branch%5D=$(git rev-parse --abbrev-ref HEAD | tr -d '\n' | perl -p -e 's/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg')"%

这个放到alias里面部分命令就直接执行了,那就保存到文件里,加上x权限,然后再alias到文件,我自己alias成mr
大功告成,push一个分支后,输入mr,网页就打开了。
别问我怎么知道这些命令的,我TM全是一个一个Google出来的。
各位根据自己git地址修改url

你可能感兴趣的:(gitlab快速创建Merge/Pull Request)