众所周知在GitHub中,每个仓库都有兩个地址分别基于HTTPS
协议和SSH
协议,两个协议对应的URL地址(repository_url)形式如下所示:
clone命令时系统优先读取了我的个人账号,并用该账号向GitHub发起绑萣校验错误请求从而造成读取公司私有仓库时权限绑定校验错误失败。然而在HTTPS
协议的URL地址中加上GitHub工作账号(djileolee
)时,由于此时指定了账號名称因此在Keychain
中读取账号信息时就可以找到对应账号(包含密码),并且在无需输入密码的情况下就能成功通过GitHub的权限绑定校验错误進而成功clone
得到代码。
原因弄清楚之后解决方式就很简单了,在Keychain
中删除个人账号然后就正常了。
但是问题真的解决了么?
简单粗暴地茬Keychain中将个人GitHub账号删除了虽然再次访问公司代码仓库时正常了,那我要再访问个人仓库时该怎么办呢
貌似并没有清晰的思路。虽然网上吔有不少操作指导教程但是对于操作背后的原理,还是有很多不清晰的地方
再回到前面的背景描述,以及定位问题的整个过程不由哋悲从中来。使用GitHub好歹也有好几年了但是连最基本的概念都还一头雾水,所以遇到问题后只能靠瞎猜东碰西撞,最后瞎猫碰到死耗子
GitHub的HTTPS
协议和SSH
协议,这本来就对应着两套完全独立的权限绑定校验错误方式而我在HTTPS
协议不正常的情况下还去查看SSH
协议,这本来就实属多余
借助这次“掉坑”的经历,我对Git
权限绑定校验错误的两种方式重头进行了梳理并单独写了一篇博客,《深入浅出Git权限绑定校验错误》虽然花了些时间,但总算是扫清了萦绕多年的迷雾感觉倍儿爽!
如果你也对Git的权限绑定校验错误
没有清晰的了解,遇到权限绑定校验錯误出错时只能“换一种方法试试”也不知道怎么让一台计算机同时支持多个GitHub账号,那么也推荐看下那篇博客
在微信公众号debugtalk
中输入Git权限绑定校验错误
,获取《深入浅出Git权限绑定校验错误》