一台电脑配置多个git账号

71 阅读3分钟

1、清空默认全局的username和email(如果没有的话可忽略)

  • 查看已配置的git列表

git config --list

  • 清空默认用户名和邮箱

 git config --global --unset user.name

 git config --global --unset user.email

 #### 2、给不同的git账户生成ssh-key:比方说一个公司账号,一个个人账号

  • git生成ssh-key,默认如果不设置名字的话就是id_rsa**

 //输入后按enter键

 ssh-keygen -t rsa -C "xxx@126.com"

如有以下内容输出,则意味着生成密钥成功


Generating public/private rsa key pair.

Enter file in which to save the key (/Users/james/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /Users/james/.ssh/id_rsa.

Your public key has been saved in /Users/james/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:rwtxjGTJPoV9Mg8lFSf8D4X6jFexWVXKOMRaVyo+RO8 13163162001@126.com

The key's randomart image is:

+---[RSA 3072]----+

|        .o=o+. .*|

|     . + o.=+++o.|

|      * * .==o== |

|     + + *ooo++  |

|      = S .+o+E  |

|       + .. +..  |

|      .   ..     |

|       . .       |

|        o.       |

+----[SHA256]-----+

  


  • 自己的git生成ssh-key,设置路径成id_rsa_xxx@gmail.com ,和之前生成的那个区分开来**

//输入自定义的rsa名字到自己的邮箱上去

ssh-keygen -t rsa -f ~/.ssh/id_rsa_xxx@gmail.com -C "xxx@gmail.com"

//后面的一样的...

3、给他们分别添加到ssh-agent信任列表

  • 添加到信任列表

ssh-add ~/.ssh/id_rsa

  • 这里可能会遇到Error比如

Could not open a connection to your authentication agent.

  • 那么请先输入

ssh-agent bash

  • 重复 3.1操作,返回Identity added就是成功了

ssh-add ~/.ssh/id_rsa

//返回这个就表示添加成功了

Identitiy added: ~/.ssh/id_rsa

  • 再次添加另一个到信任列表

ssh-add ~/.ssh/id_rsa_xxx@gmail.com

//返回这个就表示添加成功了

Identitiy added: ~/.ssh/id_rsa_xxx@gmail.com

4、添加公钥到git账户中

  • 复制公钥,然后粘贴到git网站的公钥中去

pbcopy < ~/.ssh/id_rsa.pub

//pbcopy < ~/.ssh/id_rsa_xxx@gmail.com.pub

  


5、在config文件配置多个ssh-key

  • 5.1、打开目录,看看有没有config文件,没有的话新建一个

open ~/.ssh/

  • 5.2、分别配置公司和自己的ssh-key

 

|键|值|规则|

|-|-|-|

|Host|主机|随意写,有点关联就行了|

|Hostname|主机名|必须写正确,是你的git公有地址,比方说码云:gitee.com|

|IdentityFile|身份文件|你的rsa具体路径地址|

|User|用户|可随意写,建议使用Host的前面部分,后面具体clone操作都会用到这个user|

config文件内容如下:


#gmail

Host gmail.github.com

Hostname github.com

IdentityFile ~/.ssh/id_rsa_xxx@gmail.com

User gmail

  

#126

Host 126.github.com

Hostname github.com

IdentityFile ~/.ssh/id_rsa_xxx@126.com

User 126

注意点:注意里面的空格和换行符尽量删除

6、测试连接

  • 测试公司git账户连接:如果单个账户情况一般就是ssh -T git@xxx,如果配置了config,那么可以这样测试:ssh -T git@{config里面的user}.xxx主机名


ssh -T git@gmail.github.com

  • 连接成功

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

  • 测试自己的,并连接成功

ssh -T git@126.gitee.com

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

到这一步为止,基本上后面能欢快的玩耍了

7、clone and push


//到自己工作的目录,准备下载个工程下来

cd ~/james/demo/

  

//原本单个账户的情况

git clone git@github.com:xxx/TestAndroid.git//设置多个账户和config后

git clone git@gmail.github.com:xxx/demo.git//.....done

//前往具体的工程目录

cd demo

//添加、提交,push等~~~

git add .

git pull

git commit -m "test commit"

git push

//OK啦

**注意点: **


使用source tree的时候从码云或者github拉取代码的时候,复制的ssh链接记得修改git@User(config文件中配置的User字段).github.com:xxx/demo.git