一般个人项目和公司项目要用不用的 user.name
和 user.email
,一般情况下每次clone新项目,都要在项目根目录执行以下命令设置项目的邮箱账号信息:
git config --local user.name xxxx
git config --local user.email xxxx@yyy.com
下面介绍如何使用 .gitconfig
的 includeIf
,达到不同的目录,commit时默认使用不同的邮箱账号。
macOS/Linux
假设你的项目目录结构如下:
~/projects/work => 存放公司项目的目录
~/projects/gitee => 存放 gitee 项目的目录
~/projects/github => 存放 github 项目的目录
然后依次修改或新增以下文件和内容:
~/.gitconfig
[includeIf "gitdir:~/projects/autohome/"]
path = ~/projects/.gitconfig-autohome
[includeIf "gitdir:~/projects/github/"]
path = ~/projects/.gitconfig-github
[includeIf "gitdir:~/projects/gitee/"]
path = ~/projects/.gitconfig-gitee
~/projects/.gitconfig-autohome
[user]
name = your-name
email = your-name@work.com
~/projects/.gitconfig-github
[user]
name = your-username
email = your-username@github.com
~/projects/.gitconfig-gitee
[user]
name = your-username
email = your-username@gitee.com
Windows
假设你的工作目录如下:
D:\projects\sources\ => 存放个人项目的目录
D:\projects\work\ => 存放公司项目的目录
创建以下2个文件:
D:/projects/sources/.gitconfig
[user]
name = "xxx"
email = xxx@yyy.com
D:/projects/work/.gitconfig
[user]
name = "aaa"
email = aaa@bbb.com
修改全局 ~\.gitconfig
文件:
C:/Users/{username}/.gitconfig
# 其他现有配置
[safe]
directory = D:/projects
# 新增配置
[includeIf "gitdir/i:D:/projects/work/"]
path = D:/projects/work/.gitconfig
[includeIf "gitdir/i:D:/projects/sources/"]
path = D:/projects/sources/.gitconfig
注意事项
gitdir/i
后面的/i
表示忽略目录名大小写, 在Windows下比较常用- 注意Windows系统的目录分隔符是
\
,但是.gitconfig
配置文件里需要把\
替换成/
- 公司项目和个人项目的配置文件
.gitconfig
不限目录和文件名,也就是说文件D:/projects/work/.gitconfig
可以在任意目录下,叫任意名字,比如~/work.gitconfig
。