Git 提效篇

集团的流程工具会生成一团奇形怪状的分支名称,要记忆这些分支名是一项难题,默认的 git branch 列出的本地分支都是几乎无法识别的乱码,如何快速标识、识别、打开这些丑陋的分支名呢?

1. 备注分支

1\n git config branch.WTF01942367\n20170510\nwtfbffweb.description "什么鬼迭代 1.0"
2\n git branch
3  WTF01730954\n20170224\nwtfbffweb
4  WTF01785082\n20170316\nwtfbffweb
5  WTF01824187\n20170329\nwtfbffweb
6\n WTF01942367\n20170510\nwtfbffweb
7\n git config branch.WTF01942367\n20170510\nwtfbffweb.description
8什么鬼迭代 1.0

还可以使用 git branch \n\nedit\ndescription 命令编辑复杂的备注信息。

2. 显示备注

默认 git branch 列出的本地分支不会附带备注信息,git 内置的 git config branch.{branch\nname}.description 可以显示单个分支的备注。

以下方法可以一次性列出所有分支,并附上各个分支对应的备注信息。

1\n npm i \ng git\nbr
2
3\n git br
4  WTF01730954\n20170224\nwtfbffweb 什么鬼迭代 0.1
5  WTF01785082\n20170316\nwtfbffweb 什么鬼迭代 0.2
6  WTF01824187\n20170329\nwtfbffweb 什么鬼迭代 0.3
7\n WTF01942367\n20170510\nwtfbffweb 什么鬼迭代 1.0

3. 分支别名

上面的方法备注了一团乱码的分支名,但真正要切换到这种分支时,仍然需要 git br 列出所有分支,并从中找出目标分支,复制,git co <C\nv>

有没有更便捷的方法呢,答案是肯定的。

3.1. git symbolic\nref

Git 内置了强大的 symbolic\nref 方法,可以给分支增加引用(别名):

1\n git symbolic\nref refs/heads/{分支别名} refs/heads/{目标分支名}
2\n git symbolic\nref refs/heads/v1.0 refs/heads/WTF01942367\n20170510\nwtfbffweb
3\n git co v1.0
4Switched to branch 'v1.0'
5; 这时候会切换到 WTF01942367\n20170510\nwtfbffweb
6\n git pull origin v1.0
7\n git checkout feat/one
8\n git rebase v1.0

3.2. git\nbranch\nalias

直接使用 symboilc\nref 虽然可以满足需求,但是用起来非常不方便,这时候可以使用 git\nbranch\nalias 工具来方便管理分支别名。

1\n npm i \ng git\nbranch\nalias
2
3; 给当前分支设置别名
4\n git co WTF01942367\n20170510\nwtfbffweb
5\n git bralias v1.0
6
7; 或者指定目标分支名称
8\n git branch\nalias v1.0 WTF01942367\n20170510\nwtfbffweb

4. 提交 MR/PR 时自动找到找到目标分支

特性分支需要合并到迭代分支、主干分支时,要手工找到目标分支也是很困难的,这时候 可以使用 gitopen 这个小工具来帮忙。

1\n npm i \ng gitopen
2\n git checkout feat/one
3\n git push origin feat/one
4\n gitopen mr

gitopen 会自动找到目标分支,并打开创建 MR 的在线地址,一键提交 MR。

gitopen 还有很多其他方便的特性。

参考

\n https://github.com/bahmutov/git\nbranches \n https://github.com/hotoo/gitopen \n https://github.com/hotoo/git\nbranch\nalias \n https://gist.github.com/mauricerkelly/0b12b20a870d1e38081e