章節 ▾ 第二版

2.7 Git 基礎 - Git 別名

Git 別名

在進入下一章之前,我們想介紹一個可以使你的 Git 體驗更簡單、更輕鬆、更熟悉的特性:別名。為了清晰起見,在本書的其他地方我們不會使用它們,但如果你經常使用 Git,別名是你應該瞭解的。

如果你部分輸入命令,Git 不會自動推斷你的命令。如果你不想輸入每個 Git 命令的完整文字,你可以使用 git config 輕鬆為每個命令設定別名。這裡有一些你可能想設定的例子:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

這意味著,例如,你只需輸入 git ci,而不是輸入 git commit。隨著你繼續使用 Git,你可能會經常使用其他命令;不要猶豫建立新的別名。

這項技術在建立你認為應該存在的命令時也非常有用。例如,為了糾正你遇到的取消暫存檔案的可用性問題,你可以將自己的 unstage 別名新增到 Git 中:

$ git config --global alias.unstage 'reset HEAD --'

這使得以下兩個命令等效:

$ git unstage fileA
$ git reset HEAD -- fileA

這看起來更清晰一些。新增一個 last 命令也很常見,像這樣:

$ git config --global alias.last 'log -1 HEAD'

這樣,你就可以輕鬆檢視上次提交:

$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date:   Tue Aug 26 19:48:51 2008 +0800

    Test for current head

    Signed-off-by: Scott Chacon <schacon@example.com>

如你所知,Git 只是用你為其設定別名的內容替換新命令。然而,也許你想執行一個外部命令,而不是一個 Git 子命令。在這種情況下,你在命令前加上 ! 字元。如果你編寫自己的與 Git 倉庫協同工作的工具,這會很有用。我們可以透過將 git visual 別名為執行 gitk 來演示:

$ git config --global alias.visual '!gitk'
scroll-to-top