删除大文件后Git推送仍提示超出GitHub文件大小限制求助
问题解决方案
核心原因
你手动删除public.zip仅修改了工作区的当前状态,该大文件已经被记录在你本地未推送的Git提交历史中,推送时Git会同步所有历史提交快照,因此依然会触发GitHub的文件大小限制报错。
解决步骤
方案1:仅最近1次提交包含该大文件
如果public.zip只存在于你还没推送到远程的最近一次提交中,直接修改最近的提交记录即可:
- 删除本地残留的压缩包文件:
rm public.zip - 将删除操作合并到最近一次提交,不修改提交信息:
git commit --amend --no-edit - 正常推送到远程即可:
git push
方案2:大文件存在于多段提交历史
如果无法确认文件出现的提交次数,或已经多次提交包含该文件,使用官方推荐的git filter-repo工具清理全量历史:
- 首先安装工具:
- Debian/Ubuntu系统:
sudo apt install git-filter-repo - MacOS系统:
brew install git-filter-repo - Windows系统:可通过pip安装:
pip install git-filter-repo
- Debian/Ubuntu系统:
- 执行历史清理命令,从所有提交记录中移除
public.zip:git filter-repo --path public.zip --invert-paths - 清理完成后强制推送到对应远程分支:
git push origin 你的分支名称 --force
注意事项
- 执行
git filter-repo操作前建议先备份完整的本地仓库,避免误操作导致文件丢失 - 强制推送会覆盖远程分支的提交历史,若有其他协作者共同维护该项目,请提前同步操作,避免协作者本地提交冲突
- 可在项目根目录的
.gitignore文件中添加*.zip规则,后续所有压缩包文件将不会被Git跟踪,避免同类问题重复发生
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

