EGit推送GitHub仓库报Missing unknown连接错误如何解决?
Git首次推送GitHub仓库Missing unknown报错解决方案
问题产生原因
- 核心原因是本地仓库与远程GitHub仓库的提交历史无共同祖先:通常出现在创建GitHub仓库时勾选了「自动生成README.md」「LICENSE」「.gitignore」等初始化文件,而本地项目也有独立的初始提交记录,两边为完全独立的两条提交线,Git无法匹配到对应的提交哈希,就会抛出对应缺失未知哈希的报错。
- 次要可能为本地配置的远程仓库地址存在隐形拼写错误,或是本地Git缓存的远程仓库元信息过期,导致推送时无法匹配远程仓库的提交树。
解决方案
方案一:合并无关历史(推荐,无数据丢失风险)
适用于远程仓库存在需要保留的初始化文件的场景:
- 进入本地项目根目录打开终端,执行命令拉取远程内容并允许合并无关历史:
git pull origin main --allow-unrelated-histories
若你的远程主分支名为master,将上述命令中的main替换为master即可 - 若合并过程中提示文件冲突,手动解决冲突后执行提交:
git add . git commit -m "merge remote initialization files"
- 重新执行推送即可成功:
git push origin main
方案二:强制覆盖远程(仅适用于全新空仓库)
如果确认远程仓库没有需要保留的内容,可以直接用本地提交历史覆盖远程提交线:git push -f origin main
注意该操作会清空远程仓库已有的所有提交记录,请确认后再执行
方案三:校验更新远程地址
如果上述方案均无效,先检查本地配置的远程地址是否正确:
- 执行命令查看当前绑定的远程仓库地址:
git remote -v - 若地址有误,重新设置为正确的远程地址:
git remote set-url origin git@github.com:MaximStein/MyProject.git - 重新执行推送操作即可。
内容的提问来源于stack exchange,提问作者Maxim
相关产品推荐
相关产品推荐

