初次運行Git前的配置

假設經過上一篇文章的學習,你已經在系統上安裝了 Git,那麼現在要做幾件事來配置/定製 Git 環境。每臺計算機上只需要配置一次,程序升級時會保留配置信息。可以在任何時候再次通過運行命令來修改它們。

注: 如果還沒有安裝 Git,請參考:Git安裝設置

Git 自帶一個 git config 的工具來幫助設置控制 Git 外觀和行爲的配置變量。 這些變量存儲在三個不同的位置:

/etc/gitconfig 文件: 包含系統上每一個用戶及他們倉庫的通用配置。 如果使用帶有 --system 選項的 git config 時,它會從此文件讀寫配置變量。

~/.gitconfig~/.config/git/config 文件:只針對當前用戶。 可以傳遞--global 選項讓 Git 讀寫此文件。

當前使用倉庫的 Git 目錄中的 config 文件(就是 .git/config):針對該倉庫。

每一個級別覆蓋上一級別的配置,所以 .git/config 的配置變量會覆蓋 /etc/gitconfig 中的配置變量。

在 Windows 系統中,Git 會查找 $HOME 目錄下(一般情況下是 C:\Users\$USER)的 .gitconfig 文件。 Git 同樣也會尋找 /etc/gitconfig 文件,但只限於 MSys 的根目錄下,即安裝 Git 時所選的目標位置。

用戶信息

當安裝完 Git 應該做的第一件事就是設置用戶名稱與郵件地址。這樣做很重要,因爲每一個 Git 的提交都會使用這些信息,並且它會寫入到每一次提交中,不可更改:

$ git config --global user.name "maxsu"
$ git config --global user.email [email protected]

再次強調,如果使用了 --global 選項,那麼該命令只需要運行一次,因爲之後無論你在該系統上做任何事情, Git 都會使用這些信息。 當你想針對特定項目使用不同的用戶名稱與郵件地址時,可以在那個項目目錄下運行不使用 --global 選項的命令來配置。

很多 GUI 工具都會在第一次運行時幫助你配置這些信息。

文本編輯器

既然用戶信息已經設置完畢,你可以配置默認文本編輯器了,當 Git 需要您輸入信息時會調用它。 如果未配置,Git 會使用操作系統默認的文本編輯器,通常是 Vim。 如果你想使用不同的文本編輯器,例如 Emacs,可以這樣做:

$ git config --global core.editor emacs

注:Vim 和 Emacs 是像 Linux 與 Mac 等基於 Unix 的系統上開發者經常使用的流行的文本編輯器。 如果你對這些編輯器都不是很瞭解或者你使用的是 Windows 系統,那麼可能需要搜索如何在 Git 中配置你最常用的編輯器。 如果你不設置編輯器並且不知道 Vim 或 Emacs 是什麼,當它們運行起來後你可能會被弄糊塗、不知所措。

檢查配置信息

如果想要檢查你的配置,可以使用 git config --list 命令來列出所有 Git 當時能找到的配置。

ubuntu:~$ git config --list
user.name=maxsu
[email protected]
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

上面的輸出結果中,可能會看到重複的變量名,因爲 Git 會從不同的文件中讀取同一個配置(例如:/etc/gitconfig~/.gitconfig)。 這種情況下,Git 會使用它找到的每一個變量的最後一個配置。

可以通過輸入 git config <key>: 來檢查 Git 的某一項配置。

ubuntu:~$ git config user.name
maxsu
[email protected]:~$ git config user.email
[email protected]
[email protected]:~$

獲取幫助

若在使用 Git 時需要獲取幫助,有三種方法可以找到 Git 命令的使用手冊:

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

例如,要想獲得 config 命令的手冊,執行

$ git help config

這些命令很棒,因爲隨時隨地可以使用而無需聯網。如果你覺得手冊或者本書的內容還不夠用,你可以嘗試在 Freenode IRC 服務器( irc.freenode.net )的 #git#github 頻道尋求幫助。這些頻道經常有上百人在線,他們都精通 Git 並且樂於助人。