Git
Chapters ▾ 2nd Edition

1.6 開始 - 初次設定 Git

初次設定 Git

你已經在你的系統上安裝 Git,你或許會想要自訂你的 Git 環境。 你在每台電腦上只需設定一次,這些設定在 Git 更新時會被保留下來。 你也可以藉由再次執行隨時變更這些設定。

Git 附帶一個名為 git config 的工具,讓你能夠取得和設定組態參數。這些設定允許你控制 Git 各方面的外觀和行為。 這些參數被存放在下列三個地方:

  1. 檔案 /etc/gitconfig:裡面包含該系統所有使用者和使用者倉儲的預設設定。 如果你傳遞 --system 參數給 git config,它就會明確地從這個檔案讀取或寫入設定。

  2. 檔案 ~/.gitconfig~/.config/git/config:你的帳號專用的設定。 只要你傳遞 --global,就會明確地讓 Git 從這個檔案讀取或寫入設定

  3. 任何倉儲中 Git 資料夾的 config 檔案(位於 .git/config):這個倉儲的專用設定。

每個層級的設定皆覆蓋先前的設定,所以在 .git/config 的設定優先權高於在 /etc/gitconfig 裡的設定。

在 Windows 系統,Git 會在 $HOME 目錄(對大部份使用者來說是 C:\Users\$USER)內尋找 .gitconfig。 它也會尋找 /etc/gitconfig,只不過它是相對於 MSys 根目錄,取決於讀者當初在 Windows 系統執行 Git 的安裝程式時安裝的目的地。 如果你使用的 Git for Windows 版本是 2.x 或之後的版本,有個系統層級的組態檔, 位於 Windows XP 系統的 C:\Documents and Settings\All Users\Application Data\Git\config;而 Vista 及其之後的系統,則位於 C:\ProgramData\Git\config。 要修改這個組態檔只能透過管理者權限執行 git config -f <file>

設定識別資料

在你安裝 Git 後首先應該做的事是設定使用者名稱及電子郵件。 這一點非常重要,因為每次 Git 的提交會使用這些資訊,而且提交後不能再被修改:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

再次提醒,若你有傳遞 --global 參數,只需要做這工作一次,因為在此系統,不論 Git 做任何事都會採用此資訊。 若你想指定不同的名字或電子郵件給特定的專案,只需要在該專案目錄內執行此命令,並確定未加上 --global 參數。

許多圖形使用者介面的工具會在你第一次使用它們時幫你做這工作。

指定編輯器

現在你的識別資料已設定完畢,讀者可設定預設的文書編輯器,當 Git 需要你輸入訊息時會使用它。 預設情況下,Git 會使用系統預設的編輯器。

若你想指定不同的編輯器,例如:Emacs,可以執行下列指令:

$ git config --global core.editor emacs

如果你想要在 Windows 系統上使用 Notepad++ 做為編輯器,你可以執行下列步驟:

在 x86 系統上

$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -nosession"

在 x64 系統上

$ git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -nosession"
筆記

在 Unix 類的系統(如 Linux 和 Mac)或者 Windows 系統,Vim、Emacs 和 Notepad++ 是開發者最常用的純文字編輯器。 如果你不熟悉使用這些編輯器,你可能需要針對自己想要使用的編輯器,去找出實際的 Git 設定方法。

警告

你或許會發現,如果你沒有設定編輯器,當系統預設編輯器被執行時你很有可能會不知所措。 而在 Windows 系統下,使用系統預設編輯器編輯訊息的過程中,有可能因不熟悉而誤用,進而導致某些 Git 操作過早結束,

檢查讀者的設定

若你想檢查設定值,可使用 git config --list 命令列出所有 Git 在目前位置能找到的設定值:

$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

你可能會看到同一個設定名稱出現多次,因為 Git 從不同的檔案讀到同一個設定名稱(例如:/etc/gitconfig~/.gitconfig)。 在這情況下,Git 會使用最後一個設定名稱的設定值。

你也可以輸入 git config <key> 來檢視某個設定目前的值:

$ git config user.name
John Doe