一卓的博客

怕什么真理无穷,
进一寸有一寸的欢喜。

0%

配置 Git 多目录下区分不同用户的提交

作为一个开发者,通常会拥有公司与 github/gitlab 等多个账户,在不同项目下开发时,commit 的用户名和邮箱是不同的,例如公司项目中,使用的是本名+公司邮箱,而 github 项目中使用的是个人邮箱和昵称。

首先,我们需要了解一下 Git 配置文件生效的优先级。对于一个 Git 仓库来说,配置优先级为 仓库 > 全局 > 系统。操作 Git 时,首先会查找/etc/gitconfig (系统),然后查找用户的全局配置~/.gitconfig,最后查找每个仓库的 .git/config 配置。所有的配置项,从低优先级开始加载,出现冲突时,较高优先级的配置项会覆盖前面的配置。

使用 includeif 参数实现不同目录的配置
git (version >= 2.13.0) 版本支持 includeIf用于开启不同目录下匹配不同的配置文件,使用方式:

第一步:在 ~/.gitconfig 中配置

1
2
3
4
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/github/"]
path = ~/.gitconfig-github

如上配置意思是在 work 目录下进行 git 操作使用 .gitconfig-work 中的配置信息
在 github 目录下进行 git 操作使用 .gitconfig-github中的配置信息

第二步:.config-work 文件配置:

1
2
3
[user]
name = 卓
email = xxx@163.com

在不同的 config 文件中配置不同的个人信息即可实现区分不同用户的提交。

请作者喝杯咖啡吧