解决 切换github账号后无法push的问题
2017-03-02 本文已影响2026人
元亨利贞o
0x01 问题
我有两个github账号, 昨天切换了一个账号. 让后clone了一个切换后的帐号中的仓库. 在这个仓库中做了些修改, 让后提交, 结果无法提交. 错误信息如下 (其中当前账号用currentAccount表示, 前一个账号用previousAccount表示, 当前要提交的仓库用currentRepo表示):
> git push
remote: Permission to currentAccount/currentRepo denied to previousAccount.
fatal: unable to access 'https://github.com/currentAccount/currentRepo/': The requested URL returned error: 403
从错误信息可以看出, 执行git push
时读取的账号信息是之前的账号. 因此, 本地某个位置肯定存储了github的帐号信息 ==>
主要是由于我在~/.gitconfig
文件中添加了下面配置:
[credential]
helper = store
添加了此项配置之后, github的账号信息就会记录在~/.git-credential
这个文件中, 以后需要账号信息就会从这个文件中读取. 至于为何添加上述配置, 请参考解决向github提交代码是老要输入用户名密码的问题
tips: 不推荐这么配置!! 万一有恶意的程序读取~/.git-credential
文件的内容, 然后上传 ...... 然后别人拿你的帐号干点坏事......
0x02 解决方案
既知道了存储账号信息的地方, 那么解决方案就清楚了, 即: 清除~/.git-credential
文件中之前的账号信息
**删除掉~/.git-credential
文件中之前的github账号. **
现在你再执行git push
便会出现让你输入用户名密码的步骤, 这时候输入你当前仓库的账号信息就OK啦!!