提示和技巧
在結束Git基礎這個章節前,我們將介紹有一些將會使你的Git使用經驗更簡單、方便和親切的提示和技巧。或許很多人從未運用過這些技巧,我們也不會假設你在本書的後續章節會使用它們。但你也許會想知道如何使用它們。
自動補齊
如果你用的是 Bash shell,你可以啟動Git本身寫好的自動補齊腳本。下載Git原始碼,切到contrib/completion
目錄;可以看到檔案名為git-completion.bash
。將它複製到你的家目錄,並加入以下指令到你的.bashrc
檔案裡:
source ~/git-completion.bash
如果你想為所有使用者都自動設置Bash shell的補齊功能,在Mac系統上將這個腳本複製到/opt/local/etc/bash_completion.d
目錄,若你使用Linux系統複製到 /etc/bash_completion.d/
目錄。這兩個目錄中的脚本,都會在 Bash 啟動時自動載入。
如果你在Windows使用Git Bash,也就是利用Windows with msysGit安裝Git,自動補齊功能已預先設定好,可以直接使用。
在你輸入Git指令時,只要按下Tab鍵,便會列出所有合適的指令建議:
$ git co<tab><tab>
commit config
然後按下Tab鍵兩次,便會提示commit和config這些可用指令。當再輸入m<tab>
便會自動補齊git commit
。
指令的選項也可以自動補齊,這或許是更實用的功能。舉例而言,當你下git log
指令時,若忘記該輸入哪個選項,只要輸入開頭字元然後按下Tab去看看可能的選項:
$ git log --s<tab>
--shortstat --since= --src-prefix= --stat --summary
這是個好用的小技巧,或許可以省下許多輸入和查文件的時間
Git 命令別名
如果僅輸入命令的部份字元,Git並不會幫你推論出你想要下的完整命令。如果你想偷懶,不想輸入Git命令的所有字元,你可以輕易地利用git config
設定別名(alias)。你也許會想要設定以下這幾個範例:
$ 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 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'