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

Git push被拒提示存在已删除大文件 无法推送代码如何解决

问题原因

你本地当前工作目录已不存在该文件,是因为你在后续提交中删除了它,但该大文件仍然存在于你的本地Git历史提交记录中。推送时Git会将所有历史提交的变更同步到远端,因此触发了GitHub的单文件100MB大小限制。你执行git rm仅能删除工作目录和最新提交中的文件,无法处理已经写入历史的文件,所以会出现路径不匹配的报错。

解决方案

方案1:彻底从Git历史中删除该大文件(不需要保留该文件时推荐)

  • 首先安装git filter-repo工具,这是Git官方推荐的历史改写工具,比旧版git filter-branch更高效安全
  • 执行以下命令,将该文件从所有历史提交中彻底移除:
git filter-repo --path media/CA211117.ZIP --invert-paths

注意:文件名大小写需和错误提示中的完全一致,Windows等大小写不敏感的文件系统可以额外添加--force参数强制执行

  • 改写历史完成后,执行强制推送即可:
git push origin master --force

方案2:保留该文件,使用Git LFS管理大文件

如果该文件属于项目需要保留的资源,可以用Git大文件存储功能管理:

  • 执行命令将ZIP格式文件纳入LFS管理:
git lfs track "*.ZIP"
  • 提交LFS追踪规则:
git add .gitattributes
git commit -m "配置LFS管理ZIP大文件"
  • 执行历史迁移命令,将已经提交到历史中的大文件转为LFS管理:
git lfs migrate import --include="media/CA211117.ZIP"
  • 完成后强制推送即可:
git push origin master --force

注意事项

改写Git历史会修改所有相关提交的哈希值,如果有其他协作者共同使用该仓库,需要通知所有协作者拉取最新的仓库历史,避免后续提交出现冲突。

内容的提问来源于stack exchange,提问作者Rikky Bhai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:08