方法一:在特定的專案資料夾下以區域的 config 設定 user name 與 email
git 的全域設定,未設定過或修改全域 user 的 name 與 email
只專有裝過 git 指令集,如果沒有設定過又或是想修改設定,可以以下面的指令進行設定。
1 2 | git config --global user.name "jimmyWu" git config --global user.email jimmywu@example.com |
--global 參數指的是,將 git 的設定檔以全域的方式進行設定,而所設定的路徑就是系統下的使用者資料夾下 ( ~/ 指的就是使用者資料夾)。 ~/.gitconfig 就可開啟 git 的全域設定,當開啟時其中就會有 [user] 的 name 與 email,檔中所產生的設定如下。
1 2 3 | [user] name = "jimmyWu" email = jimmywu@example.com |
在此設定下,不管終端機的路徑指向那裡,只要是輸入 git config --global user.name 或是 git config user.name 就會回應 jimmyWu。
而另外輸入 git config --global user.email 或是 git config user.email 就會回應 jimmywu@example.com。
在執行過 git init 初始化後,以不帶 –global 參數設定,特定專屬於專案的 user name 與 email
以 git init 初始化後,在 git config 設定不帶 --global 參數,執行後就會在該專案資料夾下的 <專案資料夾名稱>/.git/config 設定檔中,以專屬的設定來產生。
將以 name 做 "jimmyWu2",而 email 設定為 jimmywu2@example.com,分別於名稱後方多加上 2 做為不同的 user name 與 email。
1 2 | git config user.name "jimmyWu2" git config user.email jimmywu2@example.com |
當終端機路徑指向到專案資料夾下,特別注意不加上參數 --global。
執行 git config user.name 指令時,此時就會以專屬設定取得 "jimmyWu2", git config user.email 就會取得 jimmywu2@example.com。
方法二:在全域的 .gitconfig 判斷執行 git 指令路徑,若為 includeIf 所設定指定的路徑,將使用指定路徑中的 .xxx-gitconfig 檔中的 user 設定
全域的 .gitconfig 檔中,加入執行 git 指令路徑判斷
~/.gitconfig 中的 [user] 所設定的 name = '' 與 email = '' 的後方在接上 includeIf 判斷語法,針對指向路徑時的執行指令,決定要在加入覆蓋的設定,若在特定的資料夾路徑下指令,會將 name 與 email 的值蓋過。
1 2 3 4 5 6 7 | [user] name = <Global Git UserName> email = <Global Git UserEmail> [includeIf "gitdir:~/Repository/路徑1/"] path = ~/Repository/路徑1/.路徑1-gitconfig [includeIf "gitdir:~/Repository/路徑2/"] path = ~/Repository/路徑2/.路徑2-gitconfig |
路徑與設定附記:
- 指定路徑下設定生效,需有 .git 本地端數劇庫才能生效。
- 如果執行指令沒有在 .gitconfig 中 [includeIf "gitdir:~/Repository/路徑x/"] 指定路徑,會以前方全域的 [user] 中的 name & email 做為值使用。
- 在指定的資料夾內的函所有路徑,想設定為特定開發者名稱與 email,可用 [includeIf "gitdir: <~路徑>"] 指定路徑加上 **,表示此資料夾下相關設定都統一指向設定檔。
1 [includeIf "gitdir:~/Repository/路徑x/**"]
特定的專案資料夾中,加入專屬 gitconfig 檔,設定 user 中的特定內容
下面以 路徑1 做為說明。
</Repository/路徑1/.路徑x-gitconfig> 路徑,在 <.路徑1-gitconfig> 檔中加入 [user] 更換的設定,設定方式與內容如下。
1 2 3 | [user] name = <路徑1 所使用替換的 UserName> email = <路徑1 所使用替換的 UserEmail> |
在以上設定完成後,沒問題的話終端機指向專案資料夾下,在全域與區域都正常設定,就可以對應出專屬的 user name 與 email 設定。
資料來源
- 如何使用不同的 Git Commit 設定 (以專案資料夾路徑決定所使用的開發者名稱與 email,判斷式於全域 ~/.gitconfig 撰寫條件)