背景
一般一台电脑账号生成一个ssh绑定一个GitHub,即一一对应的关系!我之前有一个账号也配置了ssh,但是我想经营两个GitHub账号,当我用https url clone新账号的仓库时,直接超时。所以想起了配置ssh。于是有了今天这篇博客!
实操
我又生成了一个ssh。也配置到了新的账号上。再次 clone 使用ssh url,一次就clone下来了。我以为解决了问题。高高兴兴的去装修我的新账号去了,但是当我要push的时候,问题又出现了。仓库是从新账号上clone下来的,但是push要往旧账号push。于是我便验证是否可以连接新账号。使用ssh -T git@github.com,果然显示连接的是旧账号。旧账号是可以连接,但是又该如何验证新账号呢?
本来一一对应的关系,又新增了一套关系,显然得需要我们自己配置了。
如何配置呢?便继续求助搜索引擎!
可以先看一下我的两个ssh
在.ssh目录下 新建config文件。配置内容如下
我把文字粘到这里,方便你们复制
# GitHub-account1
Host github.com-account1
HostName github.com
User git
IdentityFile ~/.ssh/account1_id_rsa
# GitHub-account1
Host github.com--account2
HostName github.com
User git
IdentityFile ~/.ssh/account2_id_rsa
这样就配置好了,让两个ssh和github账号一一对应起来并告诉了电脑你的对应关系!
那么这样配置了?如何验证新账号配置好了ssh呢?之前是ssh -T git@github.com,现在只需要使用ssh -T 配置的别名就可以分别验证账号了(别名就是对应配置的Host那个值),如 ssh -T github.com--account2
是不是以为这样配置好就可以了。当然不是。我试着push到新账号的仓库的时候,结果还是push到旧账号上。因为什么呢?因为我们ssh的url默认是
git@github.com:账号名字/仓库名字.git
这个样子的。聪明的小朋友一定发现了最前面的git@github.com。 根据这个只能找到旧账号。但是我们刚才给新账号配置了别名。所以需要把这个url的前面改成新账号的别名。这样才可以push到新的仓库。所以配置后的url应该是 github账号别名:账号名字/仓库名字
。这样,就可以愉快的把代码推送到新的账号了,可以愉快的coding了!
新手小白可能不知道如何修改当前仓库的git配置。我多说几句!
也可以使用命令操作:
git remote set-url origin git@github.com:your-username/your-repo.git
验证:
git remote -v
后记
作为一个打工人,写文章全凭兴趣支持!一是可以督促自己巩固知识,二来也可以分享给大家一起学习。文笔不好,可能有些啰嗦。但是复现了我发现问题到一步一步如何解决问题。能力有限,难免有错误。有错误希望大家评论区可以指正!如果有帮助希望可以给我一个反馈。大家的支持是我继续创作的动力!