Git配置多账户
一般情况下,公司代码company_repos/
会存放在公司内部的gitlab上,个人代码privacy_repos/
会放在github上。因此我们会有两个git账户:公司账号zioyi@campany.com
和个人账号zioyi@privacy.com
。如果我们想把两者的账号区分使用,可以通过ssh
和git config
来指定公司代码通过公司账号推,个人代码通过个人账号推,具体步骤:
1.生成RSA公私钥
要生成两组:公司的和个人的
# ssh-keygen -t ras -C "{注册账号时用的邮箱}"
> cd ~/.ssh
# 公司的
> ssh-keygen -t ras -C "zioyi@campany.com"
# 然后在交互中设定文件名:id_rsa_gitlab
# 个人的
> ssh-keygen -t ras -C "zioyi@privary.com"
# 然后在交互中设定文件名:id_rsa_githuab
# 查看一下
> ls
config id_ras_gitlab id_ras_gitlab.pub
id_ras_github id_ras_github.pub known_hosts
# 配置Host
vi config
host gitlab.com
Hostname gitlab.com
User zioyi@company.com
IdentityFile ~/.ssh/id_rsa_gitlab
host github.com
Hostname github.com
User zioyi@privary.com
IdentityFile ~/.ssh/id_rsa_github
2.将公钥配置要gitlab和github的SSH-Key
校验一下:
> ssh -T git@github.com
# Hi Zioyi! You've successfully authenticated, but Github does not provied shell aceess.
> ssh -T git@gitlab.com
# *** Weclome to Gitlab, zioyi ***
# Unfortunately, interactive shells are disbaled.
# 说明成功
3.使用git config配置账户信息
# 配置公司代码
> cd /company_repos/repo1
> git config user.name "Zioyi"
> git config user.email "zioyi@company.com"
# 会修改当前代码下的git配置 .git/config
> cat .git/config
[user]
name = Zioyi
emial = zioyi@company.com
# 配置个人代码
> cd privary_repos/repo1
> git config user.name "Zioyi"
> git config user.email "zioyi@privary.com"
# 会修改当前代码下的git配置 .git/config
> cat .git/config
...
[user]
name = Zioyi
emial = zioyi@privary.com
如果嫌一个一个配置太麻烦,可以设置全局配置user信息为个人账号,然后只需在公司代码中配置.git/config
user信息为公司账号
# 全局配置命令 更改 ~/.gitconfig
> git config --global user.name "Zioyi"
> git config --global user.email "zioyi@privary.com"
> cat ~/.gitconfig
...
[user]
name = Zioyi
emial = zioyi@privary.com
大功告成!之后个人代码和公司代码的提交账号就可以区分使用了~