Git工程实践(二)多账号配置

相信大家在使用git的时候会面临这样的场景,同时拥有隶属于多个git服务的账户比如github,gitlab的代码工程,如何保证在不同的工程使用不同的账户呢?下面介绍两种常见方案。

方案一:针对项目配置git

git的配置变量可以放在三个地方:

  • /etc/gitconfig 系统配置,对所有用户都生效。
  • ~/.gitconfig 用户配置,仅对当前用户生效。
  • xxx/.git/config 项目配置,仅对当前项目生效。

如果同时配置则逐级覆盖,为了解决上述方案,我们可以针对不同的项目配置不同的用户,修改代码工程目录下的.git/confg文件加入用户信息配置即可,如下:

[user]
name = 竹涧
email = zeqiang.yzq@alibaba-inc.com

该方案有明显缺点:

  1. 工程较多时配置繁琐。
  2. 代码文件删除后需要重新配置。

下面我们来介绍一种一劳永逸的方案~

方案二:按照工作目录配置git

大概是17年中,git发布的新版本开始支持不同文件目录使用不同的配置文件,且共享用户配置,下面是我个人的gitconfig文件:

[core]
    excludesfile = /Users/yzq/.gitignore
    autocrlf = input
    editor = /usr/bin/vim
[push]
    default = simple
[includeIf "gitdir:~/Code/github/"]
    path = .gitconfig-github
[includeIf "gitdir:~/Code/work"]
    path = .gitconfig-work
[commit]
    template = ~/.gitmessage
[user]
    name = 竹涧
    email = zeqiang.yzq@alibaba-inc.com

该配置对我个人账户下所有的git工程生效,效果如下:

  • ~/Code/github/ 目录下的所有git工程使用 .gitconfig-github配置。
  • ~/Code/work/ 目录下的所有git工程使用 .gitconfig-work配置

接下来让我们看一下这两个配置的内容:

.gitconfig-work

[user]
    name = 竹涧
    email = zeqiang.yzq@alibaba-inc.com

.gitconfig-github

[user]
    name = yzq
    email = yangzeqiang@gmail.com

仅仅配置了账户信息,通过一次性配置即可保证不同目录使用不同的git配置!(上述仅仅配置实现了不同文件目录不同的git账户,其它配置项目同样适用比如commit template,editor等。)

上一篇:Dataworks坑记——小时级别依赖数据丢失问题


下一篇:Mac 神兵利器(二) 极简软件清单