You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Visual Studio Code中Git Push报错‘无匿名写入权限,认证失败’求助

别慌,新手遇到Git认证问题太正常了!结合你已经排查的点,我给你梳理几个更具体、易操作的排查方向,一步步来解决:

排查方向和解决步骤

1. 先确认本地Git的身份配置是否匹配你的GitHub账号

GitHub推送代码时,会先验证本地Git配置的用户名和邮箱是否和远程仓库的所有者一致。你可以这样检查:

  • 打开VS Code里的终端,运行命令查看当前配置:
    git config --list
    
  • 找到user.nameuser.email这两行,看看是不是你GitHub账号的用户名和注册邮箱。如果不对,立刻修改:
    git config --global user.name "你的GitHub用户名"
    git config --global user.email "你的GitHub注册邮箱"
    

2. 检查远程仓库的URL是否正确(别推错仓库了!)

报错里的「No anonymous write access」大概率是因为你试图推送到别人的公共仓库(你没有写权限),或者远程地址配置错了:

  • 运行命令查看当前关联的远程仓库:
    git remote -v
    
  • 确认输出里的origin地址是你自己的GitHub仓库(比如https://github.com/你的用户名/你的仓库名.git或者git@github.com:你的用户名/你的仓库名.git)。如果是别人的仓库,你需要先在GitHub上fork这个仓库,然后克隆你自己fork后的版本,再推送代码。

3. 如果用HTTPS地址推送:必须用个人访问令牌(PAT)代替密码

GitHub早就停止支持用账号密码直接通过HTTPS推送代码了,现在必须用PAT作为「密码」来认证:

  • 生成PAT:登录GitHub → 右上角头像 → SettingsDeveloper settingsPersonal access tokensTokens (classic)Generate new token
    • 勾选repo权限(这是推送代码必需的),设置合适的过期时间,然后一定要复制并保存好生成的PAT(刷新页面后就看不到了)
  • 当VS Code弹出输入用户名/密码的窗口时:
    • 用户名填你的GitHub账号名
    • 密码填刚才生成的PAT

4. 如果用SSH地址推送:检查SSH密钥是否正确配置

如果你的远程URL是SSH格式(git@github.com:...),需要确保本地有SSH密钥,并且公钥已经添加到GitHub:

  • 打开Git Bash(Windows用户)或终端,运行命令检查本地有没有SSH密钥:
    ls -al ~/.ssh
    
    看看有没有id_rsa(私钥)和id_rsa.pub(公钥)这两个文件
  • 如果没有,生成新的SSH密钥:
    ssh-keygen -t rsa -b 4096 -C "你的GitHub注册邮箱"
    
    一路按回车就行(不用设置密码,否则每次推送都要输入)
  • 复制公钥内容:
    cat ~/.ssh/id_rsa.pub
    
  • 登录GitHub → SettingsSSH and GPG keysNew SSH key,把复制的公钥粘贴进去,保存即可

5. 重置VS Code的Git认证缓存

有时候VS Code会缓存错误的认证信息,导致一直认证失败,试试这个:

  • 关闭VS Code,打开任务管理器(Windows)结束所有Code.exe进程
  • 重新打开VS Code,再次尝试推送,看会不会弹出正确的认证窗口

内容的提问来源于stack exchange,提问作者user180146

火山引擎 最新活动