章節 ▾ 第二版

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,您可能會經常使用其他命令;不要猶豫建立新的別名。

此技術對於建立您認為應該存在的命令也很有用。例如,為了糾正您在使用“撤銷暫存檔案”時遇到的可用性問題,您可以向 Git 新增自己的“unstage”別名。

$ 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'