Visual Studio集成Git推送GitHub时的凭证验证问题求助
问题原因与解决方案
嗨,我之前也碰到过一模一样的问题!这种情况大概率是Visual Studio的凭证管理和Git终端用的身份验证渠道不一致导致的,咱们一步步来排查解决:
核心差异说明
终端里git push能正常工作,是因为你的本地Git已经配置了有效的身份验证方式——要么是SSH密钥(所以不用输凭证),要么是系统凭据管理器里存储了正确的访问令牌;而Visual Studio可能用了独立的凭证存储,或者默认的验证方式和终端不匹配,才会出现输啥都不对的情况。
具体解决步骤
检查Visual Studio的Git全局设置
打开Visual Studio,依次点击「工具」→「选项」→「源代码管理」→「Git全局设置」:- 确认这里的用户名和邮箱和你GitHub账户的信息完全一致;
- 勾选「使用系统Git凭证管理器」,这样VS就会和终端共用系统里存储的Git凭证,避免两套凭证不一致的问题。
清除旧的无效凭证缓存
有时候VS会缓存过期或错误的凭证,导致验证失败:- 打开Windows凭据管理器(控制面板→用户账户→凭据管理器→Windows凭据);
- 找到所有和GitHub相关的条目(比如开头是
git:https://github.com的记录),右键删除; - 完全关闭Visual Studio,重新打开后再尝试推送,这时候会弹出新的验证窗口,按提示操作即可。
匹配GitHub的身份验证方式
现在GitHub已经彻底禁用了密码登录,必须用个人访问令牌(PAT) 或者SSH密钥:- 如果想用HTTPS方式推送:去GitHub的「设置」→「开发者设置」→「个人访问令牌」生成一个PAT,勾选
repo权限,然后在VS弹出输入密码的对话框时,把这个PAT填进去(而不是你的GitHub登录密码); - 如果想和终端一样免输凭证:把VS里的仓库远程地址改成SSH格式(比如
git@github.com:你的用户名/仓库名.git),这样就能复用你本地的SSH密钥完成验证。
- 如果想用HTTPS方式推送:去GitHub的「设置」→「开发者设置」→「个人访问令牌」生成一个PAT,勾选
解决退出重登无效的问题
这个也是缓存导致的——删掉Windows凭据里的GitHub条目后,再重新登录VS的GitHub账户,记得选择OAuth登录(而不是手动输入用户名密码),VS会自动跳转到GitHub授权,这样就能正常识别你的账户信息了。
内容的提问来源于stack exchange,提问作者Kevin Burton




