我对这类事情的“回购”总是bash_completion。好的,“tab tab”是 bash 成为高效工具的方式,那么,所有这些神奇的东西从何而来?
有一个/etc/bash_completion.d/目录,其中保留了 bash 完成的扩展名。必须有一个 git 文件可执行文件,打开它并寻找类似 get_refs() 的东西。如果您检查一下,您会发现git describe和git for-each-ref是您的朋友,让我们尝试一些示例:
一个常见的回购:
$ cd /your/git/repo; git branch -a
master
blaster
* brunch
lunch
remotes/origin/master
remotes/origin/develop
remotes/github/master
哪个是我检查的分支?
$ git describe --contains --all HEAD
brunch
我的遥控器是什么?
$ git remote
origin
github
遥控器上的分支是什么?
$ git for-each-ref --format="%(refname:short)" refs/remotes
origin/master
origin/develop
github/master
我的当地分支机构是什么?
$ git branch
master
blaster
* brunch
lunch
...更可解析的分支输出?
$ git for-each-ref --format="%(refname:short)" refs/heads
master
blaster
brunch
lunch
标签呢?
$ git for-each-ref --format="%(refname:short)" refs/heads refs/remotes refs/tags
master
blaster
brunch
lunch
origin/master
origin/develop
github/master
release-0_1
release-0_2
release-1_0
检查此命令的“手册页”,里面还有更多!