You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 22:48:31