mac 配置多个git账号

1. 清空git全局配置的username和email

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

git config --list 可以查看是否清空了

2. 定义两个标识符,这两个标识符以后会被用来代替“github.com”来使用。

假设两个账号的邮箱地址分别是 @qq.com@gmail.com

3. 为两个账户生成公钥和私钥

两个生成中只是邮箱和文件名不同,以第一个为例。\ 生成第一个:

ssh-keygen -t rsa -C "qq.com" -f ~/.ssh/id_rsa_qq
ssh-keygen -t rsa -C "gmail.com" -f ~/.ssh/id_rsa_gmail

会有如图输出,这里是需要指定秘钥的存储路径

\ rsa是私钥,rsa.pub 是公钥。\ 这便完成了账号的生成

4. 将生成的密钥添加到ssh-agent信任列表

以第一个账号为例

ssh-add -K ~/.ssh/id_rsa_qq   // 这里指定自己的路径
ssh-add -K ~/.ssh/id_rsa_gmail
// 返回这个就表示添加成功了
Identitiy added: ~/.ssh/id_rsa_{email}

进行查看验证

ssh-add -l

5. 将公钥添加到 github 网站上

先复制 .pub 文件中的内容,可以文本打开复制,也可以用命令,如下

pbcopy < ~/.ssh/id_rsa_a.pub  // 这是复制第一个账号的公钥

title 随便写,key type默认如图不用修改,Key 中粘贴复制的公钥,Save。

6. 配置 config 文件

编辑 ~/.ssh/config 文件,如果没有就新建一个。内容如下:\ 这里就用到了前面定义的标识符。

Host {gmail.com}
  UseKeychain yes
  Hostname github.com
  IdentityFile ~/.ssh/id_rsa_gmail
  User git

Host {qq.com}
  UseKeychain yes
  Hostname github.com
  IdentityFile ~/.ssh/id_rsa_qq
  User git

7. 测试连接

// 测试第一个账号
ssh -T git@{gmail.com}
// 测试第二个账号
ssh -T git@{qq.com}

如果连接成功能看到以下输出:

Hi xxx! You've successfully authenticated.but GitHub does not provide shell acess

即使ssh config中的文件路径配置错误,ssh -T也会通过,所以路径一定要自己检查清楚。

8. 开心的使用吧

注意地址的变化,之前是

git clone git@github.com:xxx/yyyy.git

地址的 github.com需要被自定义的标识符替换掉,比如第一个账户是 aaccount,那么命令就是

git clone git@aaccount:xxx/yyyy.git

clone到本地后,可以使用 git remote -v 查看远程地址,就是“git@aaccount:xxx/yyyy.git

9. 配置多账号之前已有项目的配置

如果是之前已经 clone 的项目需要重新指定 remote 地址以及需要配置项目的 email 和username。可以先试一下,如果不能使用再来改配置。

修改项目remote地址

git remote -v  // 查看 remote 地址
git remote rm origin
git remote add origin git@aaccount:xxx/yyy.git  // 这里是第一个账号为例

然后在每个项目中,执行:

git config user.email "{qq.com}"
git config user.name "{gmail.com}"

为项目单独设置用户名和邮箱。\ 可以查看一下:

git config user.name
git config user.email

push 的话还是照常使用:git push origin master

失败可以直接使用。变量为项目地址。

git push {ssh} {branch}
git push {https} {branch}

results matching ""

    No results matching ""