VS2017内置Git窗口拉取VSTS仓库报错,Git Bash可正常操作
解决VS2017内置Git Pull时认证失败的问题
针对你遇到的VS2017内置Git拉取报错、但Git Bash正常工作的情况,结合账户迁移的背景,大概率是凭证存储配置过期或者VS的Git认证逻辑没跟上账户变更,试试下面这些分步解决方案:
1. 更新Git凭证助手配置
旧的Windows凭证助手可能无法处理账户迁移后的认证,建议切换到新版的凭证管理器:
- 打开VS2017,依次点击「工具」→「选项」→「源代码管理」→「Git全局设置」
- 找到「凭证助手」选项,将其改为
manager-core(如果当前是wincred或其他旧选项) - 或者直接在Git Bash中执行全局配置命令:
git config --global credential.helper manager-core
2. 清除过期的Windows凭据
账户迁移后,旧的存储凭据会导致认证失败,需要手动清除:
- 打开Windows「凭据管理器」(可以通过控制面板搜索,或者Win+R输入
control keymgr.dll打开) - 切换到「Windows凭据」标签,找到所有与
myproj.visualstudio.com相关的条目,右键删除 - 重新打开VS2017,执行Pull操作,输入迁移后的新账户用户名和密码
3. 启用VS的Git终端提示
你提到「终端提示已禁用」,这可能导致VS无法 fallback 到更可靠的终端认证流程:
- 在VS2017的「工具」→「选项」→「源代码管理」→「Git全局设置」中,勾选「启用终端提示」选项
- 保存设置后再次尝试Pull,此时如果内置窗口认证失败,会自动调用终端让你输入凭据
4. 检查仓库本地Git配置
确认仓库的远程地址和本地配置没有冲突:
- 在Git Bash中进入你的仓库目录,执行命令查看本地配置:
git config --local --list - 检查
remote.origin.url是否为正确的VSTS仓库地址,如果不是,执行命令更新:git remote set-url origin https://myproj.visualstudio.com/repo - 如果发现本地配置了单独的
credential.helper,可以删除它以使用全局配置:git config --local --unset credential.helper
5. 重置VS的Git缓存
VS的本地缓存可能残留旧账户信息,导致认证异常:
- 关闭所有VS2017窗口
- 打开文件资源管理器,导航到
%LOCALAPPDATA%\Microsoft\Team Foundation\7.0\Cache目录 - 删除该目录下的所有文件和文件夹
- 重新启动VS2017,尝试执行Pull操作
这些方法应该能解决你的问题——毕竟Git Bash可以正常操作,说明仓库本身和网络没有问题,核心是VS端的认证配置没跟上账户迁移的变化。
内容的提问来源于stack exchange,提问作者Oleg Golovkov




