一台电脑使用多个git账号的方法
Jul 23, 2015
由于公司的gitlab必须使用工作邮箱,导致我原本github账号的SSHKey被覆盖了,迫不得已,把github的key也绑定了工作邮箱。但是有一个巨大的问题,虽然可以push了,但是push没有记录!!!因为绑定的不是github的账号,于是,产生了绑定两个git账号的想法。公司项目用公司的账号,我的私人仓库用我自己的账号。以下是解决办法:
- 在~/.ssh目录下生成一个SSHKey,但要另取一个名字(第一个输入不能直接回车,否则会覆盖原有的key,后两个输入可以回车使用默认值),例如”id_rsa_work”
1
ssh-keygen -t rsa -C "your work email"
完成后会出现两个key,id_rsa_work和id_rsa_work.pub
- 把id_rsa_work.pub加到你的work账号上
把新的key加到ssh agent上,由于不是使用默认的.ssh/id_rsa,所以你需要显示告诉ssh agent你的新key的位置
1
ssh-add ~/.ssh/id_rsa_work
在.ssh目录下新建config文件
1
2vi ~/.ssh/config
`
加上以下内容1
2
3
4
5
6
7Host github.com
HostName github.com #别名,可随意更换
IdentityFile ~/.ssh/id_rsa
Host gitlab.xxxx.com #别名,可随意更换
HostName gitlab.xxxx.com
IdentityFile ~/.ssh/id_rsa_work
`
可以通过使用gitlab.xxxx.com别名来明确说你要是使用id_rsa_work的SSH key来连接
1
2
3
4
5
6# 本地建库
git init
git commit -am "first commit'
# push到gitlab.xxxx.com上去
git remote add origin git@gitlab.xxxx.com:xxxx/test.git
git push origin master如果原本的项目需要更改key,取消全局设置,针对项目设置username和email
1
2
3
4git config —-global —-unset user.name #取消全局设置
git config —-global —-unset user.email #取消全局设置
git config user.name "newname"
git config user.email "newemail"