Git推送GitHub仓库时出现'did not receive expected object'错误求助
Pelican博客推送GitHub Pages失败的解决办法
问题概述
使用Pelican搭建的GitHub Pages博客原本运行正常,之后本地全新重建内容(未克隆远程仓库),通过gh-export模块自动创建的gh-pages分支推送至远程master分支时失败。执行推送命令:
git push git@github.com:JonathanMair/JonathanMair.github.io.git gh-pages:master -f
触发以下错误:
Enumerating objects: 330, done. Counting objects: 100% (330/330), done. Delta compression using up to 10 threads Compressing objects: 100% (134/134), done. Writing objects: 100% (330/330), 7.01 MiB | 4.04 MiB/s, done. Total 330 (delta 112), reused 329 (delta 112), pack-reused 0 remote: Resolving deltas: 100% (112/112), done. remote: fatal: did not receive expected object 44b304cd6f8a4df85530c3e3bd3f1c6ce800490f error: remote unpack failed: index-pack failed To github.com:JonathanMair/JonathanMair.github.io.git ! [remote rejected] gh-pages -> master (failed) error: failed to push some refs to 'github.com:JonathanMair/JonathanMair.github.io.git'
尝试多种推送组合均无效,推测问题出在推送环节或本地/远程仓库状态,需求为将本地分支内容完全覆盖远程仓库。
解决方案
方法一:清理本地Git缓存后重试
- 进入本地博客仓库目录,执行Git缓存清理命令:
git gc --prune=now git fsck --full
- 重新执行强制推送命令:
git push git@github.com:JonathanMair/JonathanMair.github.io.git gh-pages:master -f
方法二:重新关联远程仓库并推送
- 删除现有远程仓库关联:
git remote remove origin
- 添加远程仓库地址:
git remote add origin git@github.com:JonathanMair/JonathanMair.github.io.git
- 拉取远程分支(允许无关历史):
git pull origin master --allow-unrelated-histories
- 再次强制推送本地分支至远程:
git push origin gh-pages:master -f
方法三:重新初始化本地仓库推送
- 进入
gh-pages分支对应的本地网站内容目录,删除现有Git文件:
rm -rf .git
- 重新初始化Git仓库并提交内容:
git init git add . git commit -m "Rebuild blog content"
- 添加远程仓库并强制推送至
master分支:
git remote add origin git@github.com:JonathanMair/JonathanMair.github.io.git git push origin master -f
内容的提问来源于stack exchange,提问作者Jon Mair
相关产品推荐
相关产品推荐

