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

Visual Studio集成Git推送GitHub时的凭证验证问题求助

问题原因与解决方案

嗨,我之前也碰到过一模一样的问题!这种情况大概率是Visual Studio的凭证管理和Git终端用的身份验证渠道不一致导致的,咱们一步步来排查解决:

核心差异说明

终端里git push能正常工作,是因为你的本地Git已经配置了有效的身份验证方式——要么是SSH密钥(所以不用输凭证),要么是系统凭据管理器里存储了正确的访问令牌;而Visual Studio可能用了独立的凭证存储,或者默认的验证方式和终端不匹配,才会出现输啥都不对的情况。

具体解决步骤

  • 检查Visual Studio的Git全局设置
    打开Visual Studio,依次点击「工具」→「选项」→「源代码管理」→「Git全局设置」:

    • 确认这里的用户名和邮箱和你GitHub账户的信息完全一致;
    • 勾选「使用系统Git凭证管理器」,这样VS就会和终端共用系统里存储的Git凭证,避免两套凭证不一致的问题。
  • 清除旧的无效凭证缓存
    有时候VS会缓存过期或错误的凭证,导致验证失败:

    1. 打开Windows凭据管理器(控制面板→用户账户→凭据管理器→Windows凭据);
    2. 找到所有和GitHub相关的条目(比如开头是git:https://github.com的记录),右键删除;
    3. 完全关闭Visual Studio,重新打开后再尝试推送,这时候会弹出新的验证窗口,按提示操作即可。
  • 匹配GitHub的身份验证方式
    现在GitHub已经彻底禁用了密码登录,必须用个人访问令牌(PAT) 或者SSH密钥:

    • 如果想用HTTPS方式推送:去GitHub的「设置」→「开发者设置」→「个人访问令牌」生成一个PAT,勾选repo权限,然后在VS弹出输入密码的对话框时,把这个PAT填进去(而不是你的GitHub登录密码);
    • 如果想和终端一样免输凭证:把VS里的仓库远程地址改成SSH格式(比如git@github.com:你的用户名/仓库名.git),这样就能复用你本地的SSH密钥完成验证。
  • 解决退出重登无效的问题
    这个也是缓存导致的——删掉Windows凭据里的GitHub条目后,再重新登录VS的GitHub账户,记得选择OAuth登录(而不是手动输入用户名密码),VS会自动跳转到GitHub授权,这样就能正常识别你的账户信息了。

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

火山引擎 最新活动