1.1. 别名及其用途
别名,就是给原有的名字再起一个名字。
为 git 命令配置别名,可以减少我们在终端中使用 git 命令时的字符输入量。
比如,我们想查看当前 git 的全局配置信息,就需要在终端中输入 :git config --global -l
。如果我们为命令 config --global -l
起一个别名为 cgl
,则仅需要在终端中输入 git cgl
。两个命令执行的效果是一致的。
1.2. 如何创建
后续操作均以 mac 系统为例。
1.2.1. 查找配置文件
在不同的操作系统中,git 的配置信息的存放目录也不一致。
通常情况下,
- mac 系统会存放在
~/.gitconfig
(对当前用户生效)或/usr/local/git/ect/gitconfig
(对系统中所有用户生效)文件中 ; - Windows 系统则在
$HOME
目录下(一般情况下是C:Users$USER
)的.gitconfig
文件中(对当前用户生效),或者C:ProgramDataGitconfig
文件中(对系统中所有用户生效)。
- 还有仅对当前代码项目生效的配置,存放在项目中的
.git/config
文件中。 - 按照 《起步 - 初次运行 Git 前的配置》 中的说明,作用范围低的会覆盖作用范围高的,也就是说,项目中
.git
目录下的配置会覆盖用户级别的配置,用户级别的配置会覆盖系统级别的配置。
我们可以使用 git config --list --show-origin
命令查看现有的配置及其所在文件(即 gitconfig 文件)的位置:
在上图中,我们会发现,git 的配置信息同时存在于 /Users/cnpeng/.gitconfig
(即 ~/.gitconfig
)和 /usr/local/git/etc/gitconfig
文件中。以 alias.
开头的内容就是为 =
后面的 git 命令定义的别名。
1.2.2. 打开并编辑配置文件
接下来,我们在终端中输入 open -e /usr/local/git/etc/gitconfig
直接打开包含别名信息的配置文件,然后参照现有格式继续追加自定义的别名即可。
编辑完成之后,直接保存-退出即可。
open -e
命令打开的文件,允许我们像编辑普通的 word 文件一样快速编辑、保存、退出。- 我们也可以使用
vim /usr/local/git/etc/gitconfig
来打开文件,但这种方式要求我们必须先熟悉 vim 命令的操作。
1.3. 别名示例
1.3.1. 示例1
代码语言:javascript复制[alias]
s = status
a = !git add . && git status
au = !git add -u . && git status
aa = !git add . && git add -u . && git status
c = commit
cm = commit -m
ca = commit --amend # careful
ac = !git add . && git commit
acm = !git add . && git commit -m
l = log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
ll = log --stat --abbrev-commit
lg = log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
llg = log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n% b%C(bold blue)%an <�>%Creset %C(bold green)%cr (%ci)' --abbrev-commit
d = diff
master = checkout master
spull = svn rebase
spush = svn dcommit
alias = !git config --list | grep 'alias\.' | sed 's/alias\.\([^=]*\)=\(.*\)/\1\t => \2/' | sort
1.3.2. 示例2
代码语言:javascript复制[alias]
s = status
ck = checkout
ckb = checkout -b
br = branch
ps = push
psom = push origin master
pl = pull
plom = pull origin master
mg = merge
a = add .
cm = commit -m
acm = !git add . && git commit -m
df = diff
rmt = remote
rmtv = remote -v
cmamne = commit --amend --no-edit
cmam = commit --amend
lg = log
lg1 = log -1
lg2 = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
cgl = config --global -l
rmch = rm --cached
rsth = reset --hard
1.3.3. 命令解析
上述两个示例中,部分命令的含义如下:
代码语言:javascript复制创建并切换到分支。后面跟要创建的分支名。
下图中,commit
后面圈出来的内容就是提交记录的 hash 值。
我们在 reset --hard
命令后面只需要跟上前半部分(不少于 7 位)的 hash 值即可,不需要全部复制。其他需要 hash 值的命令同理。
1.4. 附录
1.4.1. 参考
- 《起步 - 初次运行 Git 前的配置》
1.4.2. 其他添加方式
除上述添加别名方式之外,我们还可以参考 《Git 基础 - Git 别名》 通过终端直接执行添加别名的命令。如:
git config --global alias.br branch
上述命令中,
- 指定了
branch
的别名为br
。 --global
指定了将配置信息添加到用户级别的~/.gitconfig
(Windows 为C:Users$USER.gitconfig
)中。如果想要存放到系统级别的配置文件中,可以将其替换为--system
这种方式虽然省去了查找配置文件所在位置的步骤,但需要逐条添加,效率不高,不建议使用。