问题
作为一个开发者,我们通常会有公司或者 GitHub
等多个账户,在这类项目下提交代码时,使用的用户名和邮箱是不同的,当然我们也可以为单个的项目设定指定的用户名和邮箱,但是如果拉取新的项目时,难免有时会忘记设置。
配置加载顺序
操作 Git
时,首先会加载系统级别的 /etc/gitconfig
文件(默认未创建),之后是加载用户的全局配置文件 ~/.gitconfig
,最后是针对每个仓库的 .git/config
文件。如果加载过程中出现配置冲突时,后面的配置项会覆盖前面的配置。
解决
我们可以使用 includeif
参数来实现不同目录不同配置的需求,首先打开 ~/.gitconfig
文件,删除原有的 [user]
配置,并添加以下配置:
[includeIf "gitdir:**/workdir/**"]
path = ~/.gitconfig_work
[includeIf "gitdir/i:**/github/**"]
path = ~/.gitconfig_github
创建 ~/.gitconfig_work
和 ~/.gitconfig_github
文件,根据自身情况做配置,参考如下:
$ vim ~/.gitconfig_work
[user]
name = xxx
email = xxx@company.com
$ vim ~/.gitconfig_github
[user]
name = xxx
email = xxx@gmail.com
网友评论