Github Desktop发布分支报URL格式非法或缺失错误的原因及修复问询
报错信息:URL using bad/illegal format or missing URL
报错核心产生原因
- 远程仓库URL配置格式错误:本地git配置的仓库origin地址存在非法内容,比如包含未转义的空格、中文字符、特殊符号,或者地址拼写缺失(比如少写了
https://前缀、路径多打了多余字符) - git凭证缓存异常:系统存储的Github关联凭证存在格式问题,或者权限过期,导致Github Desktop拉取地址时读取到非法内容
- 代理配置冲突:git全局或仓库级的代理配置格式错误,比如缺少协议、端口,推送时拼接出不符合规范的请求URL
- Github Desktop本地元数据损坏:软件存储的仓库缓存信息异常,错误拼接了分支推送的目标地址
- SSH配置异常(仅针对SSH协议的仓库地址):本地SSH密钥配置错误、SSH config文件存在格式问题,导致地址解析失败
对应修复方法
- 修正远程仓库地址
打开仓库本地文件夹,启动Git Bash执行git remote -v查看当前origin地址,和Github官网对应仓库的地址做比对。如果存在错误,执行git remote set-url origin 正确仓库地址修正,标准HTTPS地址格式为https://github.com/用户名/仓库名.git,标准SSH地址格式为git@github.com:用户名/仓库名.git,注意不要包含多余的空格、换行符。 - 清除无效的Github凭证
Windows系统打开「凭据管理器」-「Windows凭据」,删除所有和github.com相关的凭证;Mac系统打开「钥匙串访问」,搜索github删除所有关联凭证。之后重启Github Desktop,重新登陆账号授权后再尝试推送。 - 修复代理配置
执行git config --global --get http.proxy和git config --global --get https.proxy查看全局代理配置,如果返回的地址格式错误或无需使用代理,执行以下命令清除配置:
如果确实需要使用代理,确保配置的地址格式完整,例如git config --global --unset http.proxy git config --global --unset https.proxygit config --global http.proxy http://127.0.0.1:7890,不要缺少协议、端口信息。 - 重置Github Desktop仓库缓存
在Github Desktop顶部菜单栏选择「文件」-「将本地仓库移到回收站」(仅移除软件内的仓库记录,不会删除本地代码文件),之后重新选择「添加本地仓库」导入目标项目,再次尝试推送分支即可。 - 修复SSH配置(仅SSH地址适用)
执行ssh -T git@github.com验证SSH连通性,如果返回报错,检查本地~/.ssh/id_rsa.pub公钥是否已添加到Github账号,同时检查~/.ssh/config文件是否存在格式错误。
内容的提问来源于stack exchange,提问作者Jelle2005
相关产品推荐
相关产品推荐

