在工作与学习之间,我们难免会用到两个甚至更多的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 = yourname-self@gmail.com
[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 = yourname-self@gmail.com
公司工程配置文件~/.gitconfig-work:
[user]
name = yourname-work
email = yourname-work@yourCompanyName.com