方法一:在特定的專案資料夾下以區域的 config 設定 user name 與 email

git 的全域設定,未設定過或修改全域 user 的 name 與 email

只專有裝過 git 指令集,如果沒有設定過又或是想修改設定,可以以下面的指令進行設定。

--global 參數指的是,將 git 的設定檔以全域的方式進行設定,而所設定的路徑就是系統下的使用者資料夾下 ( ~/ 指的就是使用者資料夾)。 ~/.gitconfig 就可開啟 git 的全域設定,當開啟時其中就會有 [user]nameemail,檔中所產生的設定如下。

在此設定下,不管終端機的路徑指向那裡,只要是輸入 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。

當終端機路徑指向到專案資料夾下,特別注意不加上參數 --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 的值蓋過。

路徑與設定附記:

  • 指定路徑下設定生效,需有 .git 本地端數劇庫才能生效。
  • 如果執行指令沒有在 .gitconfig[includeIf "gitdir:~/Repository/路徑x/"] 指定路徑,會以前方全域的 [user] 中的 name & email 做為值使用。
  • 在指定的資料夾內的函所有路徑,想設定為特定開發者名稱與 email,可用 [includeIf "gitdir: <~路徑>"] 指定路徑加上 **,表示此資料夾下相關設定都統一指向設定檔。

特定的專案資料夾中,加入專屬 gitconfig 檔,設定 user 中的特定內容

下面以 路徑1 做為說明。

</Repository/路徑1/.路徑x-gitconfig> 路徑,在 <.路徑1-gitconfig> 檔中加入 [user] 更換的設定,設定方式與內容如下。

在以上設定完成後,沒問題的話終端機指向專案資料夾下,在全域與區域都正常設定,就可以對應出專屬的 user name 與 email 設定。


資料來源