git多账号的管理

由于最近搬家到了github博客,使用github写博客的时候与平时在实验室中使用gitlab的账号起了冲突,所以研究一下同一台电脑配置不同的git账号的方法。
由于git账号是通过邮箱来识别用户,之前一直使用的gitlab账号的邮箱为161xxxxxx@vip.henu.edu.cn 学校的企业邮箱,而github使用的是qq邮箱。所以在完成工作commit后无法push到远程或是产生冲突。

为每个账号配置不同的ssh秘钥

1
2
//新建一个ssh 与之前配置git一样就不多说了
ssh-keygen -t rsa -C "16xxxxx@vip.henu.edu.cn"

之后填入ssh对应的名字不要与之前的ssh名字相同(自己命名)
默认的地址为c盘的user用户下的.ssh文件夹中
然后文件夹中会有两对ssh文件(id_rsa,id_rsa.pub/还有一对是刚才自己命名的)

配置config文件

之后在当前文件夹中创建config文件,因为不同的邮箱对应不同的host,所以要给他们配置一个config文件

1
2
3
touch config
//然后使用vim 编辑
vim config

在config文件中增添配置信息

1
2
3
4
5
6
7
8
9
Host github.com
HostName github.com
User git
IdentityFile C:/Users/84640/.ssh/id_rsa

Host gitlab
HostName gitlab.henu.edu.cn
User git
IdentityFile C:/Users/84640/.ssh/labid

两个账号分别对应不同的host,hostname需要填写对应的网站域名,host可以任意写。

设置主次(建议)

使用较为频繁的邮箱配置为global,两个账号哪一个使用的频繁,就在对应的本地仓库设置为。

1
2
git config --global user.name 'jixiang'
git config --global user.email '16xxxxxxx@vip.henu.edu.cn'

使用不太频繁的就设为local,进入项目或者拉去代码的仓库,git bash here

1
2
git config --local user.name 'bjdlbg'
git config --local user.email '84640886@qq.com'

多于两个账号

如果还有其他账号那可以为每个项目设置对应的user name和email

测试

1
2
3
4
ssh -T git@github.com 
# 会在之后输出welcome,github等信息
ssh -T git@gitlab.henu.edu.cn
# 同理,输出对应信息