在之前的内容里,我们不断使用了下面这些git
命令:
git add
git commit -m
git status
git log
对于这些高频率使用的命令,每次都手敲它们不免显得有点儿麻烦。这一节,我们介绍两种给这些命令创建别名的方法。
使用git自身的别名配置
第一种,是使用git
自身支持的别名配置。就像之前配置全局的名称和电子邮件一样,我们可以执行:
git config --global alias.s status
这里,alias
表示设置别名,s
表示别名的名称,status
则是别名对应的真正命令。这样,我们就可以执行git s
实现git status
的功能了。
这个别名的配置保存在~/.gitconfig文件中,如果查看下它的内容就会发现,在最后的[alias]
部分,多了一个s = status
配置。因此,我们也可以直接在这个文件中添加各种命令的别名。例如这样:
[alias]
s = status
l = log
保存退出之后,我们就可以执行git l
实现和git log
同样的功能了。
同样,如果要删除这些别名,可以直接在~/.gitconfig中删掉对应的内容。也可以执行:
git config --global unset alias.l
这样,git l
就无法使用了。
在终端里添加别名
第二种方法,算不上是什么知识,顶多算是一个我自己的使用习惯罢了。就是我们可以直接在终端里为经常使用的命令设置别名。毕竟,git
自身的别名前面还要使用git
,而终端里的别名可以更简单易用。
为此,我习惯新建一个~/.alias文件,把所有自定义的别名都添加在这个文件里,然后在.zshrc
或者你使用的终端的配置文件中,使用source ~/.alias
让这些别名生效。
接下来,就可以在~/.alias中设置别名了:
alias ga="git add"
alias gaa="git add ."
alias gc="git commit -m"
alias gs="git status"
这样,当我们要:
- 创建快照的时候就可以使用
ga file_name
; - 为所有文件创建快照的时候就可以使用
gaa
,表示git add all
; - 在命令行直接提交的时候可以使用
gc "Your comment here"
; - 查看当前仓库状态可以使用
gs
;
相比git
自身的别名,它们用起来更加简单直观。当然,这只是我习惯的用法,理解了这个思路之后,大家可以可以根据自己的情况,定义各种别名了。
What's next?
以上,就是这一节的内容。创建好别名之后,下一节,我们来看另外一类比较常见的场景。假设,你正在另外一个分支上开发,但现在,你必须马上切换回master修复bug。如果这个时候,开发分支上的代码还不具备提交到开发分支的条件,该怎么办呢?