为同一个电脑,配置多个 git 账号,其整体流程如下:
- 清空默认的全局
user.name
和user.email
- 为不同的
git
账户生成不同的ssh-key
- 将以上的
ssh-key
分别添加到ssh-agent
信任列表- 添加以上的公钥到自己的
git
账户中- 在
config
文件配置多个ssh-key
- 测试
1. 清空默认的全局 user.name
和 user.email
git config --global --unset user.name
git config --global --unset user.email
2. 为不同的 git
账户生成不同的 ssh-key
id_ras
是默认的文件名称,我们现在需要生成不同的ssh-key
,所以要设置不同的文件存储对应的公钥,比如:自己的 GitHub 账户,使用id_ras_github
命名;公司的账户,使用id_ras_company
来命名
ssh-keygen -t id_ras_github -C "xxx@xx.com"
ssh-keygen -t id_ras_company -C "xxx@company.com"
3. 将 ssh-key
分别添加到 ssh-agent
信任列表
ssh-add ~/.ssh/id_ras_github
ssh-add ~/.ssh/id_ras_company
如果看到
Identitiy added: ~/.ssh/id_ras_github
,就表示添加成功了。
4. 添加公钥到自己的 git
账户中
使用命令,copy公钥,到 git 账户中粘贴即可。
pbcopy < ~/.ssh/id_ras_github.pub
pbcopy < ~/.ssh/id_ras_company.pub
5. 在 config
文件配置多个 ssh-key
在 .ssh/ 目录下,config文件(没有的话新建一个)
#公司
Host company.gitee.com
Hostname gitee.com
IdentityFile ~/.ssh/id_rsa_github
User company
#个人
Host me.gitee.com
Hostname gitee.com
IdentityFile ~/.ssh/id_rsa_company
User me
6. 测试
测试:ssh -T git@{config里面的user}.xxx主机名
ssh -T git@company.gitee.com
出现以下,则说明成功!
Hi user.name! You've successfully authenticated.but GITEE.COM does not provide shell acess
最后:
在不同的代码仓库进行代码提交时,记得检查用户名和邮箱,以免混淆。设置用户名和邮箱的命令如下:
git config --local user.name xxx
git config --local user.email xxx@xxx.com