Featured image of post 为Git设置不同的账号设置

为Git设置不同的账号设置

前言(需求)

作为混迹在这种git平台的程序员,为了充当隐士高人,需要针对不同的git平台设置不同的nameemail

实现

git 2.13 及以上,添加了 Conditional includes 功能

git config 文件添加配置

1
2
[includeIf "hasconfig:remote.*.url:ssh://git@gitlab.*.com:*/**"]
  path = ~/.config/git/config.work.inc

上面这段话的含义就是, git 仓库中有 remote 配置, url 参数中的链接 通过通配符匹配成功则引入 ~/.config/git/config.work.inc 文件

这里是支持 glob 通配符模板,hasconfig:remote.*.url: 中的 * 也可以替换成对应的源比如 origin,但 url 后的值一定要注意匹配正确,我的仓库在使用的时候是ssh://git开头的,所以这里要从头开始匹配.

什么不会用? 推荐一个大神的文章: 阮一峰的网络日志 命令行通配符教程

~/.config/git/config.work.inc 文件内容

1
2
3
[user]
  name = work
  email = work@abc.com

这里可以设置一个不同与 git config 中的 nameemail

测试查看

查看仓库配置的email地址,并显示来源

1
git config --show-origin --get user.email