1、什么是Git命令的別名
Git中命令很多句惯,有些命令比較長土辩,有些命令也不好記,也容易寫錯抢野。
例如:你有沒有經(jīng)常敲錯命令拷淘?比如git status
?如果敲git st
就表示git status
那就簡單多了指孤。
Git 并不會在你輸入部分命令時启涯,自動推斷出你想要執(zhí)行的命令贬堵。 如果不想每次都輸入完整的Git命令,可以通過 git config
文件來輕松地為每一個命令設置一個別名结洼。
也就是給status
命令配置別名黎做,告訴Git,以后st
就表示status
松忍。
總結:什么是別名引几?
別名用于創(chuàng)建映射到較長命令的較短命令。就和Linux命令設置別名一樣挽铁。
2伟桅、別名的全局配置
(1)配置全局別名
我們就以上面說的git status
命令為例進行演示。
我們只需要敲一行命令叽掘,告訴Git楣铁,以后st
就表示status
:
# 1.查看工作目錄文件狀態(tài)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
git: 'st' is not a git command. See 'git --help'.
The most similar commands are
status
reset
stage
stash
svn
# 可以看到執(zhí)行git st命令的時候,提示“st”不是git命令更扁。
# 2.給他git status 設置別名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --global alias.st status
# 3.再次查看工作目錄文件狀態(tài)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
On branch master
nothing to commit, working tree clean
我們可以看到git status
命令設置完別名后盖腕,別名和原命令都可以使用。
說明:
--global
參數(shù)是全局參數(shù)浓镜,也就是這些命令在這臺電腦的所有Git倉庫下都有用溃列。-
我們之前說配置用戶簽名的時候,
--global
參數(shù)是在系統(tǒng)用戶目錄下的.gitconfig
文件中進行配置膛薛。配置別名的內(nèi)容如下:
[user] name = sun_wk email = sun_wk@126.com [alias] st = status # 這里就是配置的別名
-
--global
參數(shù)配置的是全局參數(shù)听隐,也就是針對該系統(tǒng)用戶,對該系統(tǒng)中所有的Git倉庫的配置哄啄。換句話說雅任,就是加上
--global
參數(shù),該別名對本機中所有的Git倉庫都管用咨跌。
(2)刪除全局別名
有兩種方式:
- 打開系統(tǒng)用戶目錄下的
.gitconfig
文件沪么,把該別名手動刪除。 - 使用命令行刪除锌半,執(zhí)行命令:
git config --global --unset alias.st
禽车。
提示:刪除別名之后,別名失效刊殉。
3殉摔、別名局部配置
(1)配置局部別名
還是以git status
命令為例進行演示。
基本上和全局別名的配置一樣冗澈,就是把--global
參數(shù)換成--local
钦勘,或者就是去掉不寫陋葡。(不寫默認就是執(zhí)行--local
參數(shù))
# 下面進行簡單說明
# 1.查看工作目錄文件狀態(tài)亚亲,使用git st不可以
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
git: 'st' is not a git command. See 'git --help'.
The most similar commands are
status
reset
stage
stash
svn
# 2.配置別名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config alias.st status
# 3.再次使用git st,查看工作目錄文件狀態(tài)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
On branch master
nothing to commit, working tree clean
說明:
沒有加
--global
參數(shù),默認在本地版本庫中的配置文件進行配置捌归,所以只針對該倉庫起作用肛响。-
我們之前說配置用戶簽名的時候,本地版本庫的配置文件為
.git/config
文件惜索。現(xiàn)在查看該文件如下:
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true [alias] st = status # 這里就是配置的局部別名
(2)刪除局部別名
有兩種方式:
- 打開當前Git倉庫目錄下的
.git/config
文件特笋,把該別名手動刪除。 - 使用命令行刪除巾兆,執(zhí)行命令:
git config --unset alias.st
猎物。
提示:刪除別名之后,別名失效角塑。
4蔫磨、刪除所有別名
(1)刪除所有全局別名命令:
$ git config --global --remove-section alias
(2)刪除所有局部別名命令:
$ git config --remove-section alias
5、小練習
我們上一篇文章介紹了圃伶,如何修改Git歷史版本信息內(nèi)容和顏色的顯示堤如。
如:git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'
我們就把上命令配置別名,執(zhí)行命令如下:
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'"
執(zhí)行git lg
命令窒朋,顯示效果如下:
當然你也可以把別名定義為log
搀罢。
總結:隨著你繼續(xù)不斷地使用 Git,可能也會經(jīng)常使用別名命令侥猩,所以創(chuàng)建別名這種偷懶的辦法我們是贊成的榔至。
補充:
git config --global color.ui true
:讓Git顯示顧色,會讓命令輸出看起來更醒目欺劳。(效果沒有上面手動配置的顏色顯示豐富)