Git推送代码至仓库提示url无scheme、凭据url无法解析如何解决
报错根因
报错触发原因是Git凭据模块读取到的GitHub地址缺少协议前缀(即https://、git@这类scheme标识),无协议的裸域名无法被凭据解析器识别。
卸载Git无法解决问题的核心原因是:Git卸载程序默认不会删除用户目录下的全局配置文件、系统凭据存储中保存的Git相关条目,重装后Git仍然会读取这些残留的错误配置。
修复步骤
按以下顺序操作即可解决问题:
- 清理各层级Git配置中的错误条目
依次执行三条命令,分别查看系统、当前用户、本地仓库三个层级的所有Git配置,检索所有和credential相关、值为裸域名github.com的配置项:git config --system --listgit config --global --listgit config --local --list
定位到错误配置项后,执行对应命令删除即可:- 删除系统级错配(Windows需打开管理员权限终端执行,Linux/macOS需加sudo前缀):
git config --system --unset 错误配置的键名 - 删除当前用户全局错配:
git config --global --unset 错误配置的键名 - 删除当前仓库错配:
git config --local --unset 错误配置的键名
- 删除系统级错配(Windows需打开管理员权限终端执行,Linux/macOS需加sudo前缀):
- 清理系统凭据存储中的残留错误条目
Git会调用系统原生凭据存储保存认证信息,这部分内容不会随Git卸载删除:- Windows:打开控制面板→凭据管理器→Windows凭据,找到所有和github.com相关的普通凭据条目,全部删除
- macOS:打开钥匙串访问,搜索github.com,删除所有相关的互联网密码条目
- Linux:如果使用libsecret凭据助手,打开seahorse(密码和密钥管理器)搜索github.com删除对应条目;如果使用store文件模式存储凭据,直接编辑用户根目录下的
.git-credentials文件,删除所有不带协议前缀的github.com相关行
- 修正本地仓库的远端地址格式
进入出问题的本地仓库目录,执行命令查看当前配置的远端地址:git remote -v
如果输出的地址是github.com/用户名/仓库名.git这类不带协议头的格式,执行命令替换为正确地址:
用HTTPS协议推送就执行:git remote set-url origin https://github.com/你的用户名/你的仓库名.git
用SSH协议推送就执行:git remote set-url origin git@github.com:你的用户名/你的仓库名.git - 验证修复
完成上述操作后执行git push,Git会正常触发身份验证流程,不会再抛出地址解析错误。
避坑说明
- 所有配置给Git凭据模块的地址必须带协议前缀,禁止直接传入裸域名,否则必然触发解析报错
- 涉及Git配置类的报错,不需要优先尝试卸载重装,优先排查各层级配置和系统凭据残留即可,卸载操作对解决配置问题几乎没有帮助
内容的提问来源于stack exchange,提问作者StackOverflow master420
相关产品推荐
相关产品推荐

