[Git]09 如何为命令起外号

时间:2021-09-09 07:20:43

Git并不会推断你输入的几个字符将会是哪条命令,不过如果想偷懒,少敲几个命令的字符,可以用 git
config 为命令设置别名。来看看下面的例子:

$ git config --global alias.co checkout

$ git config --global alias.br branch

$ git config --global alias.ci commit

$ git config --global alias.st status

现在,如果要输入 git commit 只需键入 git
ci 即可。而随着 Git使用的深入,会有很多经常要用到的命令,遇到这种情况,不妨建个别名提高效率。

使用这种技术还可以创造出新的命令,比方说取消暂存文件时的输入比较繁琐,可以自己设置一下:

$ git config --global alias.unstage 'reset HEAD --'

这样一来,下面的两条命令完全等同:

$ git unstage fileA

$ git reset HEAD fileA

显然,使用别名的方式看起来更清楚。另外,还经常设置 last 命令:

$ git config --global alias.last 'log -1 HEAD'

然后要看最后一次的提交信息,就变得简单多了:

$ git last

commit 66938dae3329c7aebe598c2246a8e6af90d04646

Author: Josh Goebel

Date:   Tue Aug 26 19:48:51 2008 +0800

test for current head

Signed-off-by: Scott Chacon

可以看出,实际上 Git只是简单地在命令中替换了你设置的别名。不过有时候我们希望运行某个外部命令,而非Git的附属工具,这个好办,只需要在命令前加上 ! 就行。如果你自己写了些处理Git仓库信息的脚本的话,就可以用这种技术包装起来。作为演示,我们可以设置用 gitvisual 启动gitk:

$ git config --global alias.visual"!gitk"