gitlab快速创建Merge/Pull Request

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 827评论 0 0
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,791评论 1 17
  • (接茅草屋下的老汉妇人) 1 星期天的时候,老汉又带着老妇前往教堂的路上,只这天太阳公公并没有出来,淅淅沥沥的下起...
    林小仙仙仙阅读 283评论 0 10
  • ——文化叩问:我的教学行走方式 曾经在《当代文化的哲学阐释》上读到这样一则故事: 有一个大学生去老教授家请教问题,...
    储建明阅读 874评论 0 13
  • 1、感恩过去所受的磨难,让我更加了悟自己,了悟宇宙人生的真相! 2、感恩过去伤害过我的人,让我此刻明白这种受伤的感...
    大道至简01灵阅读 75评论 0 0