Git推送代码提示Permission denied权限被拒,切换邮箱后仍报错
问题排查与解决办法
我来帮你梳理下导致这个403权限错误的几个常见原因,以及对应的解决步骤:
1. 当前仓库的本地邮箱配置和全局配置不一致
Git的配置分全局级和仓库级两种,你用git config --global user.email看的是全局设置,但你当前的Android代码仓库可能还保留着旧的abc@gmail.com配置。
- 先检查当前仓库的本地邮箱:执行
git config user.email(不带--global参数) - 如果结果是旧邮箱,就用这个命令修改本地仓库配置:
git config user.email "xyz@gmail.com"
2. 系统缓存了旧的Git登录凭证
很多操作系统会自动缓存你之前的Git登录信息(比如abc@gmail.com的密码或访问令牌),哪怕你改了邮箱,推送时还是会用旧凭证去验证,自然会被拒。
- Windows:打开「凭据管理器」→「Windows凭据」,找到所有和GitHub相关的条目,删除后重新执行
git push,会提示你输入新的凭证(推荐用GitHub个人访问令牌PAT,不要用账号密码) - Mac:打开「钥匙串访问」,搜索「GitHub」,删除对应的密码条目,重新推送即可
- Linux:可以先执行
git credential-cache exit清除缓存,或者直接编辑~/.git-credentials文件,删除旧的GitHub凭证行
3. 你的xyz@gmail.com账号没有仓库推送权限
先确认这个xyz@gmail.com账号确实拥有ScanFiles.git仓库的写权限:要么你是仓库的所有者,要么被仓库主人添加为协作者并赋予了推送权限。如果没有权限,哪怕邮箱配置对了也会报403,这时候需要联系仓库管理员添加权限。
4. 全局邮箱的拼写错误
你提到执行全局邮箱命令显示的是xyc@gmail.com,但你要关联的是xyz@gmail.com——这里是不是手滑打错了?如果是,先修正全局邮箱:
git config --global user.email "xyz@gmail.com"
按照上面的顺序排查,一般就能解决这个权限问题啦。
内容的提问来源于stack exchange,提问作者Parth Anjaria
相关产品推荐
相关产品推荐

