起因
由于我的电脑是二手,当我用到git时,我重新给电脑配置了我的git邮箱,账号。采用如下命令:
git config --global user.email "你的github账号邮箱"
git config --global user.name "你的github用户名"
并且生成了密钥和公钥:id_rsa
和id_rsa.pub
,将公钥添加到我的的远程仓库(github)。按道理,这样一番设置后,电脑中的git配置都修改成了我的git账号信息。可结果并不如意。当我git push,clone,pull时,还是会失败,失败信息大概如下:
remote: Permission to userA/repo.git denied to userB.
fatal: unable to access 'https://github.com/userA/repo.git/': The requested URL returned error: 403
很明显,根据提示,userB没有权限对userA的repo进行push更改。
临时解决办法
在当前git仓库下运行:git remote set-url origin https://xxx@github.org/hello/etl.git
为当前项目修改远程url,这样就可以暂时解决。虽然这种办法能解决燃眉之急,但却不是长久之计。
问题原因
由于该电脑使用git bash配过ssh,系统已经将指向github的用户设置为了userB,每次push操作的时候,都将读取到userB的用户信息,类似于记住密码。因为git默认读取的是第一次记住密码的账号,而不是我自己个人的git账户。
Mac解决办法
在launchpad中找到钥匙串访问,右上角搜索github
,把不属于自己账户的文件进行删除。
Windows解决办法
- 打开 控制面板–>用户账户–>凭据管理器–>管理Windows凭据
找到github的凭据,进行删除。
重新push,输入账号,密码即可成功提交。