命令行Git正常运行但VS 2017报403错误,求解决方案
解决TFS升级后Team Explorer无法Fetch/Pull(报403)但命令行正常的问题
这种情况我之前帮同事排查过好几次,核心原因基本都是Team Explorer的凭据缓存或配置和命令行Git不一致——毕竟两者可能用的不是同一套凭据存储体系。给你几个针对性的排查和解决步骤,按顺序试下来大概率能解决:
清除Team Explorer的Git凭据缓存
- 打开Windows凭据管理器(可以通过控制面板→用户账户→凭据管理器→Windows凭据找到,或者直接在开始菜单搜索“凭据管理器”)
- 在“Windows凭据”列表里,找到所有和你的TFS新URL、旧URL相关的条目(通常会显示为
git:https://xxx.tfs.com这类格式),右键点击删除 - 完全关闭Visual Studio/Team Explorer,重新打开后尝试执行fetch,这时候应该会弹出登录验证窗口,输入正确的账号密码(如果是域账号记得用
域\用户名的格式)
核对Team Explorer与命令行的Git远程配置
- 在命令行进入项目目录,执行
git remote -v,复制下显示的远程仓库URL - 切换到Team Explorer,进入当前项目的「设置」→「Git」→「存储库设置」
- 确认这里显示的远程仓库URL和命令行输出的完全一致,有时候修改URL后Team Explorer可能没同步到所有配置节点
- 在命令行进入项目目录,执行
强制Team Explorer使用系统Git客户端
部分版本的Visual Studio自带了内置Git客户端,和你命令行使用的Git版本可能存在凭据处理逻辑差异:- 打开Visual Studio的「工具」→「选项」→「源代码管理」→「Git全局设置」
- 找到「使用系统Git」的选项并勾选,点击确定后重启Visual Studio,再测试fetch/pull操作
检查代理设置的差异
命令行Git的代理配置和Team Explorer继承的Visual Studio代理配置可能不一致:- 在命令行执行
git config --global http.proxy和git config --global https.proxy,确认当前代理设置 - 打开Visual Studio的「工具」→「选项」→「环境」→「Web浏览器」→「代理设置」
- 确保这里的代理配置和命令行一致,如果不需要代理就都设置为「无代理」
- 在命令行执行
重置Team Explorer的项目关联
如果以上都没用,可能是项目在Team Explorer里的关联信息损坏了:- 在Team Explorer的「连接」页面,找到你的项目,右键选择「移除」
- 重新点击「连接到项目」,选择你的TFS服务器和对应的项目存储库,重新关联后再测试操作
内容的提问来源于stack exchange,提问作者Daniel Bailey
相关产品推荐
相关产品推荐

