因为需要使用多个github账号,但只有一台电脑,想要动态切换不同用户,并且做到免密提交。
环境
- Mac book Pro 2020
- git version 2.24.3 (Apple Git-128)
- github账号
github登录账号 | github用户名 |
---|---|
cnnqjban521@gmail.com | hoey94 |
351865576@qq.com | hoey1994 |
- 测试用的项目(大小写区分)
Github账号 | 项目 |
---|---|
cnnqjban521@gmail.com | Test |
351865576@qq.com | test |
免密登录
为两个账号生成不同的公钥(*.pub)和密钥
1 | ssh-keygen -t rsa -C "cnnqjban521@gmail.com" -f ~/.ssh/id_rsa_hoey94 |
生成的两组,公钥和密钥,分别到github官网上配置免密登录 Settings->SSH and GPG Keys->New SSH Key,填写的内容可以是用下面命令查看
1 | cat ~/.ssh/id_rsa_hoey94.pub |
配置映射
创建~/.ssh/config,将内容填入进去
1 | vim ~/.ssh/config |
这里解释一下这一组内容的含义,平常克隆的时候我们会这么写:
1 | git clone git@github.com:hoey1994/test.git |
但如果如果按照上面内容进行配置以后,在克隆的时候要改成这样:
1 | git clone git@github-hoey1994:hoey1994/test.git |
请仔细对比一下上面两个克隆命令之间的差异
按照同样原理,将另一个账号也配置一下
1 | Host github-hoey94 |
如果端口有修改,可以按照下面的方式进行填写
Host gitlib-juneyao
HostName gitlab.juneyaoair.com
Port 10022
IdentityFile /Users/hoey/.ssh/id_rsa_juneyao
用户管理
推荐不要跳过这一步,gacm是管理git用户很不错的一个工具,可以稍微熟悉一下命令。对于commit 的author的信息,可以快速的进行切换,因为本地有多个用户,使用它可以大大提高效率。
- 取消全局的用户配置
1 | git config --global --unset user.email |
安装多用户管理工具gacm,具体安装步骤见github
使用gacm命令添加两个账户
1 | gacm add --name hoey94 --email cnnqjban521@gmail.com |
测试验证
在账号cnnqjban521@gmail.com(hoey94)下创建Test项目
在账号351865576@qq.com(hoey1994)下创建test项目
使用下面命令分别克隆到本地
1 | 克隆Test |
改动一下里面的内容并提交完成测试。