Git报UriFormatException错误,VS2017与Git Bash操作均受影响求助
解决Git的UriFormatException错误(VS2017/Git Bash下)
兄弟,我之前也踩过一模一样的坑——明明PUSH/PULL命令能正常工作,但这个烦人的错误提示就是甩不掉!结合你的环境信息,试试下面这几个针对性的解决方案:
1. 升级Git Credential Manager for Windows
你的GCM版本1.14.0确实有点老了,这个版本和VSTS仓库交互时存在已知的Uri格式解析bug,升级一下就能解决大部分这类问题:
- 打开Git Bash,直接执行命令:
git credential-manager install,这会自动帮你升级到适配当前Git版本的最新GCM - 如果自动升级失败,手动下载最新版安装包覆盖安装就行,装完记得重启VS2017和Git Bash再测试
2. 检查并修复远程仓库URL配置
有时候VSTS仓库的URL里如果包含特殊字符(比如项目名带空格),或者配置时不小心输错了格式,就会触发这个解析错误:
- 进入你的本地仓库目录,在Git Bash里执行:
git remote -v,仔细核对输出的URL和VSTS上的仓库地址是否完全一致 - 如果发现URL有问题,用这个命令重新设置:
git remote set-url origin https://你的VSTS账户名.visualstudio.com/你的项目名/_git/你的仓库名 - 设置完成后执行
git fetch,看看错误还会不会出现
3. 重置Windows凭据管理器里的Git凭据
存储的凭据损坏或者格式异常也会导致GCM解析出错,重置一下就行:
- 按下Win+R,输入
control keymgr.dll打开Windows凭据管理器 - 在「Windows凭据」里找到所有和VSTS、你的Git仓库相关的条目,全部删除
- 重新执行
git push,这时候会弹出登录窗口,输入你的VSTS凭据完成登录后,再测试操作是否还会报错
4. 临时切换Git凭据存储方式(排查用)
如果上面的方法都没效果,可以先切换到明文存储来确认是不是GCM的问题:
- 在Git Bash里执行:
git config --global credential.helper store - 执行一次
git push并输入凭据,之后凭据会存在本地的.git-credentials文件里,这时候应该不会再弹出UriFormatException错误 - 确认问题根源后,记得切回更安全的GCM:
git config --global credential.helper manager-core(新版GCM的命令是manager-core哦)
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

