跳到主要内容

Git 多账号切换问题

看了几篇文章,是把几种场景分开来写了,这样有好也有坏处, 好处是进行了一些解耦,使单个问题简单化。 坏处是还是有部分耦合使场景有内容重复, 另外一个坏处是,有些人遇到这些场景合并在一起的情况可能就不知道怎么做了, 所以我这里就直接把这几种场景何在一起来讲,因为本身也不是太复杂。没必要拆那么细。

例子

一台电脑上有两个 github 账号和一个 gitlab 账号

这几个账号都配置有独立的 rsa 秘钥。

首先.修改 ~/.ssh/config 文件,修改大致如下:

host 1.github.com
hostname github.com
Port 65095
User username1
IdentityFile ~/.ssh/github1_rsa

host 2.github.com
hostname github.com
Port 65095
User username2
IdentityFile ~/.ssh/github2_rsa

host gitlab.example.com
hostname gitlab.example.com
Port 65095
User username3
IdentityFile ~/.ssh/gitlab_rsa

使用 git 的时候它会根据邮箱自动去判断项目应该提交到哪个仓库,所以需要取消全局的 git 用户邮箱配置

git config --global --unset user.name
git config --global --unset user.email

然后到项目目录里对项目单独设置 local 的用户名和邮箱

git config  user.email "xxxx@xx.com"
git config user.name "suzie"

这样配好后,只要在需要使用 git 的项目里配置下对应项目的用户名和邮箱,就可以照常使用命令了,会自动对应到相应地仓库。

参考