同一台电脑设置多个 Git 账号

huazi 2020-07-08 PM 44℃ 0条

场景

github 上新申请了一个账号 whhong_new,因为之前已经有一个账号 whhong,在推送代码的时候发现问题,默认使用的还是 whhong 这个账号。

解决办法

生成新的 ssh_key

~/.ssh 目录下查看已经有了 id_rsaid_rsa.pub 两个文件,这是之前为 whhong 账户配置的。

现在需要为新账号 whhong_new 生成新的秘钥:

$ ssh-keygen -t rsa -C "whhong_new@email.com"   #whhong_new@email.com 替换为新账号对应的邮箱即可
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/whhong/.ssh/id_rsa): # 输入新的文件名:/Users/whhong/.ssh/id_rsa_whhong_new
Enter passphrase (empty for no passphrase): // 默认为空就可以,直接回车
Enter same passphrase again:
Your identification has been saved in /Users/whhong/.ssh/id_rsa_whhong_new.
Your public key has been saved in /Users/whhong/.ssh/id_rsa_whhong_new.pub.
The key fingerprint is:
SHA256:HnEBlCcgxQRG5IIIK1442MpWthPKiqR0uj86dyw+fFg whhong_new@email.com
The key's randomart image is:
+---[RSA 3072]----+
|=o.o*=+ooo.      |
|O= o .. o ..     |
|B=. .   .o.      |
|+.o.     o       |
|o.      E        |
|o +    = .       |
|.= o  o o        |
|= * oo           |
|.*o*o..          |
+----[SHA256]-----+

然后就可以看到已经生成了公钥和私钥文件:id_rsa_whhong_newid_rsa_whhong_new.pub

使用 ssh-add 将新生成的私钥加到缓存中:

$ ssh-add id_rsa_whhong_new

查看缓存中的已经存在的 ssh 私钥:

$ ssh-add -l
    
    3072 SHA256:DakhmC***************76v+qJQcbw2yvUoCM  (RSA)
    2048 SHA256:9nsZVZ*********HwQYl7jl3t23Hsz9c id_rsa (RSA)

发现已经有两个私钥。

设置多用户

~/.ssh 目录下,修改 config 文件,如果没有则新建。

 Host whhong
          HostName github.com
          User whhong@email.com
          IdentityFile ~/.ssh/id_rsa
 
 Host whhong_new
          HostName github.com
          User    whhong_new@email.com
             IdentityFile ~/.ssh/id_rsa_whhong_new

上面的 Host 是一个标识,后面配置 git 客户端远程推送地址的时候会用到,可以自定义,可以区分就可以。

HostName 就是仓库托管平台,可能是 github.com、gitlab.com、bitbucket.com 等。

User 是账户对应的邮箱。

IdentityFile 是账户对应的ssh 私钥文件。

设置Github 中的 SSH Key

首先我们需要将 id_rsa_whhong_new.pub 的内容配置到 github 中的ssh-key 中。可以使用

cat id_rsa_whhong_new.pub

然后复制内容到 github 的设置页面 [[setting]](https://github.com/settings/keys)点击 New SSH key 添加即可。

设置本地 Git 客户端

上面已经将新生成的ssh-key 与新账号关联了起来。下面我们将进行本地 git 的设置:

在本地已有仓库的情况下,设置当前仓库的用户和邮箱,注意:

如果之前设置了全局的用户名和邮箱,需要取消掉:

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

然后设置当前项目的用户名和邮箱:

$ git config user.name = 'whhong_new'
$ git config user.email = 'whhong_new@email.com'

使用 git config -l 查看 user.nameuser.email 是否设置成功。

设置仓库远程推送地址

在本地项目仓库中,.git 目录下,编辑 config 文件:

 [remote "origin"]
      url = git@github.com:whhong_new/test.git
      fetch = +refs/heads/*:refs/remotes/origin/*

其中的 url 需要设置为之前设置的Host

url = git@github.com:whhong_new/test.git

需要改为:

url = git@whhong_new:whhong_new/test.git

然后就可以进行 push 操作了。

参考:https://blog.csdn.net/onTheRoadToMine/article/details/79029331

标签: Git

非特殊说明,本博所有文章均为博主原创。

评论啦~