在工作與學習之間,我們難免會用到兩個甚至更多的git賬戶,爲了避免賬戶之間的混淆,可以在本地配置不同的賬戶來區分。通常劃分的方式有兩種,
- 按工程配置多用戶
- 按目錄配置多用戶
這裏是git的文檔,長的很啊。
1. 按工程配置
git的配置變量可以放在三個地方:
/etc/gitconfig
系統配置,對所有用戶都生效。~/.gitconfig
用戶配置,僅對當前用戶生效。
git config --global user.name "yourName"
git config --global user.email "yourEmail"
projectRootPath/.git/config
項目根目錄配置,僅對當前項目生效
git config user.name "yourName"
git config user.email "yourEmail"
注意,三種方式的優先級爲 3 > 2 > 1。
2. 按目錄配置
2017年,git發佈的版本2.13.0包含了一個新的功能includeIf配置,可以把匹配的路徑使用對應的配置用戶名和郵箱。
以下操作以OS系統爲例,
在 ~/目錄下面存在git的配置文件.gitconfig
一般內容如下,
[user]
name = yourname-self
email = [email protected]
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
首先修改默認的全局通用配置文件~/.gitconfig
,裏面的內容主要是通過includeIf
配置匹配不用的目錄映射到不同配置文件上,例如,
[includeIf "gitdir:~/Github/"]
path = .gitconfig-self
[includeIf "gitdir:~/Workspace/"]
path = .gitconfig-work
這裏意爲在~/Github/
目錄下放自己的代碼,~/Workspace/
目錄放公司的代碼,分別匹配對應的git配置。
注意:
- 文件
~/.gitconfig
裏面的includeIf
後面的path
最後需要/
結尾- 文件
~/.gitconfig
裏面原有的user
部分需要刪除,註釋的話開頭用#
或;
- 個人工程目錄和公司工程目錄不能是包含關係。
現在在當前目錄新建(touch
+ 文件名)兩個文件,.gitconfig-self
和.gitconfig-work
,如圖所示,
個人工程配置文件~/.gitconfig-self:
[user]
name = yourname-self
email = [email protected]
公司工程配置文件~/.gitconfig-work:
[user]
name = yourname-work
email = [email protected]