作为一个开发者,通常会拥有公司与 github/gitlab 等多个账户,在不同项目下开发时,commit 的用户名和邮箱是不同的,例如公司项目中,使用的是本名+公司邮箱,而 github 项目中使用的是个人邮箱和昵称。
首先,我们需要了解一下 Git 配置文件生效的优先级。对于一个 Git 仓库来说,配置优先级为 仓库 > 全局 > 系统。操作 Git 时,首先会查找/etc/gitconfig
(系统),然后查找用户的全局配置~/.gitconfig
,最后查找每个仓库的 .git/config
配置。所有的配置项,从低优先级开始加载,出现冲突时,较高优先级的配置项会覆盖前面的配置。
使用 includeif
参数实现不同目录的配置git (version >= 2.13.0)
版本支持 includeIf
用于开启不同目录下匹配不同的配置文件,使用方式:
第一步:在 ~/.gitconfig
中配置
1 | [includeIf "gitdir:~/work/"] |
如上配置意思是在 work 目录下进行 git 操作使用 .gitconfig-work
中的配置信息
在 github 目录下进行 git 操作使用 .gitconfig-github
中的配置信息
第二步:.config-work
文件配置:
1 | [user] |
在不同的 config 文件中配置不同的个人信息即可实现区分不同用户的提交。