有沒有經(jīng)常敲錯命令?比如 git status?status 這個單詞真心不好記。
如果敲git st
就表示git status
那就簡單多了,當(dāng)然這種偷懶的辦法我們是極力贊成的。
我們只需要敲一行命令,告訴 Git,以后 st 就表示 status:
$ git config --global alias.st status
好了,現(xiàn)在敲git st
看看效果。
當(dāng)然還有別的命令可以簡寫,很多人都用 co 表示 checkout,ci 表示 commit,br 表示 branch:
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
以后提交就可以簡寫成:
$ git ci -m "bala bala bala..."
--global
參數(shù)是全局參數(shù),也就是這些命令在這臺電腦的所有 Git 倉庫下都有用。
在撤銷修改一節(jié)中,我們知道,命令git reset HEAD file
可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)。既然是一個unstag
e操作,就可以配置一個 unstage 別名:
$ git config --global alias.unstage 'reset HEAD'
當(dāng)你敲入命令:
$ git unstage test.py
實際上 Git 執(zhí)行的是:
$ git reset HEAD test.py
配置一個git last
,讓其顯示最后一次提交信息:
$ git config --global alias.last 'log -1'
這樣,用git last
就能顯示最近一次的提交:
$ git last
commit adca45d317e6d8a4b23f9811c3d7b7f0f180bfe2
Merge: bd6ae48 291bea8
Author: Michael Liao <askxuefeng@gmail.com>
Date: Thu Aug 22 22:49:22 2013 +0800
merge & fix hello.py
甚至還有人把 lg 配置成了:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
來看看git lg
的效果:
http://wiki.jikexueyuan.com/project/git-tutorial/images/alias.png" alt="" />
配置 Git 的時候,加上--global
是針對當(dāng)前用戶起作用的,如果不加,那只針對當(dāng)前的倉庫起作用。
配置文件放哪了?每個倉庫的 Git 配置文件都放在.git/config
文件中:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:michaelliao/learngit.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[alias]
last = log -1
別名就在[alias]后面,要刪除別名,直接把對應(yīng)的行刪掉即可。
而當(dāng)前用戶的 Git 配置文件放在用戶主目錄下的一個隱藏文件.gitconfig
中:
$ cat .gitconfig
[alias]
co = checkout
ci = commit
br = branch
st = status
[user]
name = Your Name
email = your@email.com
配置別名也可以直接修改這個文件,如果改錯了,可以刪掉文件重新通過命令配置。