Git 提效篇

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

1. 备注分支

$ git config branch.WTF01942367_20170510_wealthbffweb.description "什么鬼迭代 1.0"
$ git branch
  WTF01730954_20170224_wealthbffweb
  WTF01785082_20170316_wealthbffweb
  WTF01824187_20170329_wealthbffweb
* WTF01942367_20170510_wealthbffweb
$ git config branch.WTF01942367_20170510_wealthbffweb.description
什么鬼迭代 1.0
1
2
3
4
5
6
7
8

还可以使用 git branch --edit-description 命令编辑复杂的备注信息。

2. 显示备注

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

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

$ npm i -g git-br

$ git br
  WTF01730954_20170224_wealthbffweb 什么鬼迭代 0.1
  WTF01785082_20170316_wealthbffweb 什么鬼迭代 0.2
  WTF01824187_20170329_wealthbffweb 什么鬼迭代 0.3
* WTF01942367_20170510_wealthbffweb 什么鬼迭代 1.0
1
2
3
4
5
6
7

2. 分支别名

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

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

git symbolic-ref

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

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

git-branch-alias

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

$ npm i -g git-branch-alias

; 给当前分支设置别名
$ git co WTF01942367_20170510_wealthbffweb
$ git bralias v1.0

; 或者指定目标分支名称
$ git branch-alias v1.0 WTF01942367_20170510_wealthbffweb
1
2
3
4
5
6
7
8

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

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

$ npm i -g gitopen
$ git checkout feat/one
$ git push origin feat/one
$ gitopen mr
1
2
3
4

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

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

参考

Help
[count]gg 跳转到第 [count] 行,默认第 1 行。
[count]G 跳转到第 [count] 行,默认最后一行。
[count]j 向下跳转 [count] 行,默认跳转一行。
[count]k 向上跳转 [count] 行,默认跳转一行。
/ 开始搜索。按 <Esc> 退出。
gh 跳转到首页。
gb 跳转到博客首页。
gw 跳转到 Wiki 首页。
gt 跳转到我的 Twitter Profile 页。
gp 跳转到我的 Github Profile 页。
? 打开帮助。按 <Esc> 退出。