Mac上配置多个git账号

8,574 阅读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

截屏2021-11-10 19.49.24

  • 测试自己的,并连接成功
ssh -T git@126.gitee.com
Hi xxx! You've successfully authenticated.but GitHub.COM does not provide shell acess

截屏2021-11-10 19.48.17

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

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啦