向GitHub仓库推送文件时出现403错误该如何解决?
问题现象
在Windows PowerShell终端执行GitHub仓库推送操作时返回403权限错误,具体报错如下:
PS C:\Users\family\Desktop\index.html> git push origin main remote: Permission to assylum6/assignment1.git denied to AlvaroMakobi. fatal: unable to access 'https://github.com/assylum6/assignment1/': The requested URL returned an error: 403
核心报错逻辑:当前Git鉴权识别到的账号为AlvaroMakobi,该账号没有目标仓库assylum6/assignment1.git的写入推送权限。
排查解决步骤
- 先核对仓库权限与地址正确性
首先确认目标仓库assylum6/assignment1的归属:如果仓库不属于AlvaroMakobi账号,先找仓库所有者确认该账号是否被添加为协作者、是否开通了写入权限;如果这是你自己名下的仓库,直接定位为本地缓存了错误的账号凭据。同时执行git remote -v查看本地绑定的远程仓库地址,确认没有拼写错误、没有错填成其他用户的仓库地址,如果地址有误,执行git remote set-url origin <正确的仓库HTTPS地址>修正即可。 - 清理Windows缓存的错误GitHub凭据
打开系统控制面板找到「凭据管理器」,选择「Windows凭据」分类,在普通凭据列表中找到所有前缀为git:https://github.com的条目,全部删除。Windows默认会自动缓存之前登录过的Git平台身份凭证,推送时会优先调用缓存内容,这也是本次报错识别到错误账号AlvaroMakobi的最常见原因。 - 校验本地Git账号配置
回到PowerShell执行以下命令,检查全局或当前仓库的Git用户名、邮箱配置,是否和你拥有权限的GitHub账号一致:
如果配置的用户名、邮箱和你实际要用的账号不匹配,执行对应命令修改:# 查看全局Git配置 git config --global --list # 查看当前仓库Git配置 git config --local --list# 修改全局配置的用户名、邮箱,替换为你自己的账号信息 git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub账号绑定邮箱" # 仅修改当前仓库配置时,去掉--global参数在仓库目录下执行 # git config user.name "你的GitHub用户名" # git config user.email "你的GitHub账号绑定邮箱" - 重新推送完成身份验证
清理完旧凭据、修正配置后,再次执行git push origin main,此时会触发GitHub身份校验流程:可以直接选择浏览器跳转授权登录对应账号,也可以使用提前生成的、勾选了repo权限范围的个人访问令牌(PAT)作为密码填入完成验证,验证通过即可正常推送。
注意:GitHub自2021年起已不再支持账号密码直接进行HTTPS方式的推送鉴权,不要直接输入账号登录密码尝试验证。
内容的提问来源于stack exchange,提问作者josemaria
相关产品推荐
相关产品推荐

