同一个 git 服务为什么要分开?
如果你公司用的是 github 企业版那就是两个不同的 git 服务,可以用~/.ssh/config 区分不同 host 使用不同的 pub_key 。
如果你公司用的也是社区版,那就把公司邮箱加到你个人账户的 emails 里面就好了,然后本地默认配置个人邮箱或者公司邮箱,但是非默认配置邮箱的项目需要设置下项目级别的 email 和 username 就好了(或者用 includeIf 区分目录动态配置)。
如果已经有两个 github 账户对应个人和公司的项目,那就其中一个账户的 github 地址用别名好了。
比如~/.ssh/config 配置为:
```
Host
github.com HostName
github.com PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github1
User gituser1
Host
github2.com HostName
github.com PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github2
User gituser2
```
使用的唯一差别就是下载代码的时候记得把公司项目的 ssh 地址
github.com 改成
github2.com (或者其他别名)
另外使用 includeIf 区分不同目录使用不同.gitconfig,需要本地 git 版本是 2.13.0 以上才支持
在~/目录下面存在三个配置文件,
.gitconfig // 全局通用配置文件
.gitconfig-my // 个人工程配置文件
.gitconfig-work // 公司工程配置文件
全局~/.gitconfig 配置如下
```
[user]
name = yourname
email = yourname@gmail.com
[includeIf "gitdir:~/myspace/"]
path = .gitconfig-my
[includeIf "gitdir:~/workspace/"]
path = .gitconfig-work
```
个人.gitconfig-my 配置如下
```
[user]
name = gituser1
email = myname@gmail.com
```
公司.gitconfig-work 配置如下
```
[user]
name = gituser2
email = myname@company.com
```