Git推送报错403:凭据不匹配,权限被拒绝问题求助
解决Git推送时的权限拒绝(凭据冲突)问题
1. 清除本地Git凭据缓存
Git会缓存之前使用的账号凭据,即便修改了全局配置,推送时仍会调用旧的BananaOak账号凭据。根据你的操作系统执行对应命令:
Windows系统
打开命令提示符执行:
git credential-manager-core erase
按提示输入远程仓库地址 https://github.com,确认后即可清除该地址的缓存凭据。
macOS系统
在终端执行:
git credential-osxkeychain erase
同样输入 https://github.com 完成缓存清除。
Linux系统
执行以下命令退出缓存服务:
git credential-cache exit
或者直接删除凭据存储文件:
rm ~/.git-credentials
2. 检查并修正本地仓库用户配置(可选)
若全局配置未生效,可能是本地仓库存在单独的用户配置覆盖了全局设置,执行以下命令检查并修改:
# 查看本地仓库当前用户配置 git config user.name git config user.email # 若显示为BananaOak,修改为GingerToe的信息 git config user.name "GingerToe" git config user.email "anasakhan0@gmail.com"
3. 重新执行推送
清理完凭据后,再次执行推送命令:
git push -u origin main
此时会弹出账号验证窗口,输入GingerToe的账号密码(推荐使用GitHub个人访问令牌,安全性更高)。
4. 改用SSH协议推送(可选,避免后续凭据冲突)
如果不想反复处理凭据问题,可以切换为SSH协议:
- 生成SSH密钥并添加到GingerToe的GitHub账号中
- 修改本地仓库的远程URL为SSH地址:
git remote set-url origin git@github.com:GingerToe/ML-Practice.git
后续推送将通过SSH密钥验证,不会再出现凭据冲突问题。
内容的提问来源于stack exchange,提问作者Anas Khan
相关产品推荐
相关产品推荐

