程序员大多讨厌重复的工作,所以通常会设置一些方便的配置,以下是我自己在Git上通常会做的方便设置。
1. 更换编辑器
一般来说,Vim是Git默认的编辑器,所以对新手来说,在终端机下使用Git,Vim编辑器恐怕是个绕不过去的坎儿。虽然在3.2节介绍了这个神奇的编辑器如何使用,但对于平常不用,或者用不习惯的人来说还是会觉得很麻烦。
不过还好,不一定非要用Vim,可以在终端机执行以下命令:
$ git config --global core.editor emacs
这样就可以把默认的Vim编辑器换成Emacs了。
其实,除了Vim和Emacs之外,还可以使用Sublime Text、Atom或Visual Studio Code等比较现代的文字编辑器。只需先搜索一下怎样从终端机启动这些应用程式,然后就可以用同样的方法把Vim换掉了。
如果在操作Git的过程中弹出Vim这件事情让你很困扰,那么建议搭配图形界面软件使用。
2. 设置缩写
虽然Git命令不长,但有时懒得打那么多字(如checkout命令就有8个字母),或者有些命令经常会打错(如status命令可能会打成state)。遇到这种状况,可以在Git中设置一些“缩写”,这样就可以少打几个字。只需在终端机执行以下命令:
$ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.st status
设置之后,只需输入git co命令,就可以实现与输入git checkout命令一样的效果;输入git st命令,就可以实现与输入git status命令一样的效果。
此外,还可以再加入一些参数。例如,每次在查看log时,为了看到比较精简的信息,都要输入git log --oneline --graph这么长的命令,而改用Alias设置(如下所示):
$ git config --global alias.l "log --oneline --graph"
以后只需输入git l命令,就可以实现与原来的 --oneline --graph命令一样的效果了:
* cc200b5 (HEAD -> master) Merge branch 'cat' |\ | * 0d1d15d (cat) add cat 2 | * 0d392fb add cat 1 |/ * 657fce7 (origin/master, origin/HEAD) add container * abb4f43 update index page * cef6e40 create index page * cc797cd init commit
甚至可以把格式弄得再复杂一点,把Commit的人与时间都加进来:
$ git config --global alias.ls 'log --graph --pretty=format:"%h <%an> %ar %s"'
结尾那个看起来有点复杂的format参数就是用于输出Commit的个别信息,其含义是执行git help log后查阅关于format有关的段落。用起来会像这样:
$ git ls * cc200b5 <Eddie Kao> 9 seconds ago Merge branch 'cat' |\ | * 0d1d15d <Eddie Kao> 18 seconds ago add cat 2 | * 0d392fb <Eddie Kao> 20 seconds ago add cat 1 |/ * 657fce7 <Eddie Kao> 13 days ago add container * abb4f43 <Eddie Kao> 13 days ago update index page * cef6e40 <Eddie Kao> 2 weeks ago create index page * cc797cd <Eddie Kao> 2 weeks ago init commit
这样,即使不使用图形界面工具也可以轻松地查看log。上面这些Alias的设置,也可以直接到~/.gitconfig中修改:
[alias] co = checkout br = branch st = status l = log --oneline --graph ls = log --graph --pretty=format:"%h <%an> %ar %s"
虽然只是少输入了几个字母,但长期累积下来,减少的输入量也是很惊人的。