• 由于本人有连个git账号,个人github账号和公司gitlab账号,为了同时使用这两个账号,并且防止冲突,因此需要进行设置,如下:

6、git同时存在两个账号(在同一台电脑上)

  • 由于本人有连个git账号,个人github账号和公司gitlab账号,为了同时使用这两个账号,并且防止冲突,因此需要进行设置,如下:

6.1 首先是常规设置

ssh-keygen -t rsa -C "youremail@example.com",生成的文件存储在~/.ssh/id_rsa,然后一直回车,于是就可以在~/.ssh下就可以看到有两个文件id_rsa和id_rsa.pub。

接下来就可以登录自己的github账号,将id_rsa.pub中的内容复制到github中的SSH框中,在setting->SSH and GPG keys->new SSH key,title随便取一个名字。接下来:

ssh-add ~/.ssh/id_rsa

于是就可以正常使用了。

6.2 同时添加两个账号

  • 染成上面第一步后,接下来创建公司git账号的ssh秘钥

    ssh-keygen -t rsa -C "email2@example.com",然后修改下图红色框中的位置,例如:/Users/schacon/.ssh/id_rsa_gitlab

完成后,就可以在/Users/schacon/.ssh/下查看到四个文件:id_rsa, id_rsa.pub, id_rsa_gitlab, id_rsa_gitlab.pub

  • 将新生成的公钥id_rsa_gitlab.pub放置公司的个人账号的gitlab的ssh框中,在setting->SSH and GPG keys->new SSH key,title随便取一个名字。

    由于ssh-agent默认只识别id_rsa,因此还需要添加秘钥id_rsa_gitlab,如下:

    ssh-add ~/.ssh/id_rsa_gitlab.

    ssh-add ~/.ssh/id_rsa
  • 添加这两个私钥很重要,最好都设置一下密码,否则可能会有冲突。

6.3 最后一步,配置~/.ssh/config文件

vim ~/.ssh/config,添加内容如下:

# fisrt@qq.com
Host git@github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github # second@163.com
Host git@gitlab.com
HostName git.xiaojukeji.com
User git
IdentityFile ~/.ssh/id_rsa

如果还想要添加第三个账号,可以用相同的方式进行。

当你运行一个git push时,就可以在~/.ssh/下看到文件know_hosts了,这里存放着ssh-add的账号

6.4 补充:有时因为设置了全局账号,因此需要清除

例如,之前可能终端中运行了下列命令:

git config --global user.name "your_name"
git config --global user.email "your_email"

要想清除,可以直接删除上述命令生成的文件~/.gitconfig,命令如下:

rm ~/.gitconfig