工作需要使用不同的账号来提交不同的项目,所以需要在同一个电脑上设置不同账号
可以参考博客:https://juejin.cn/post/6999630383130083358
,但是他这个博客里有一些错误
假设我们注册两个账号的邮箱和github用户名分别为:email : account1@domain1.com
userName : MyAccount1
email : account2@domain2.com
userName : MyAccount2
1、清空默认的全局 user.name
和 user.email
git config --global --unset user.name
git config --global --unset user.email
2、为不同的 git 账户生成不同的 ssh-key
为不同的账号生成不同的密钥对
> cd ~/.ssh
> ssh-keygen -t rsa -f id_rsa_account1 -C "account1@domain1.com"
> ssh-keygen -t rsa -f id_rsa_account2 -C "account2@domain2.com"
> ls -l
id_rsa_account1
id_rsa_account1.pub
id_rsa_account2
id_rsa_account2.pub
3、将 ssh-key 分别添加到 ssh-agent 信任列表
ssh-add ~/.ssh/id_rsa_account1
ssh-add ~/.ssh/id_rsa_account2
如果看到 Identitiy added: ~/.ssh/id_rsa_github,就表示添加成功了。
4、添加公钥到自己的 git 账户中
查看公钥
cat id_rsa_account1.pub
cat id_rsa_account2.pub
github页面位置:
右上角 头像
- settings
- SSH and GPG keys
- 【New SSH key】
5、在 config 文件配置多个 ssh-key
在 .ssh/
目录下,config
文件(没有的话新建一个)
这里面的Hostname,是我们自己定义的域名映射,我们需要使用这个域名来拉取账号对应仓库的代码。
# Account1 Host a1.github.com Hostname ssh.github.com IdentityFile ~/.ssh/id_rsa_account1 User MyAccount1
Account2
Host a2.github.com Hostname ssh.github.com IdentityFile ~/.ssh/id_rsa_account2 User MyAccount2
6、测试
此时使用不同的域名访问github,就可以识别到不同的账号
> ssh -T git@a1.github.com
Hi MyAccount1! You've successfully authenticated, but GitHub does not provide shell access.
> ssh -T git@a2.github.com
Hi MyAccount2! You've successfully authenticated, but GitHub does not provide shell access.
7、拉取代码
git clone git@a2.github.com:xxxxx/xxxxxxx.git
全部评论