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

Git无法推送代码:已删除大文件触发GitHub大小限制

解决Git推送时残留大文件的问题

这个问题我碰到过好多次了——你虽然删掉了本地的文件,但Git的提交历史里还留着这个大文件的痕迹,所以推送时GitHub还是会检测到它。下面给你两个靠谱的解决办法,按你的场景选就行:

场景1:大文件是最近一次未推送的提交里添加的

如果这个大文件是你刚提交还没推送到远程的,操作很简单:

  • 先撤销这次提交(不会删掉你本地的文件变更,只是把提交记录撤回来):
    git reset HEAD~1
  • 确保这个大文件已经被彻底删除,或者把它添加到.gitignore文件里(如果以后都不想让Git追踪它的话)
  • 重新添加所有文件并提交:
    git add .
    git commit -m "Fix: Remove large Test.zip file"
  • 最后推送:
    git push origin master

场景2:大文件在更早的历史提交里

如果这个大文件是之前好几次提交里都存在的,就得彻底清理Git历史了,推荐用官方现在主推的git filter-repo工具(比旧的filter-branch更安全稳定):

  1. 先确认你装了git filter-repo——大部分新版本Git自带,要是没有的话,用包管理器装就行(比如Mac上brew install git-filter-repo,Windows上用Chocolatey或者直接下载二进制文件)
  2. 运行命令彻底从所有历史提交中删除这个大文件:
    git filter-repo --path AllFiles/Test.zip --invert-paths
  3. 验证一下历史里是不是已经没这个文件了:
    git log --all -- AllFiles/Test.zip
    如果没有任何输出,就说明清理成功了
  4. 强制推送到远程(因为修改了历史记录,所以必须加--force;要是多人协作的仓库,记得先通知队友同步代码,避免冲突):
    git push origin master --force

额外提醒

  • 要是经常需要处理大文件,建议用Git LFS(大文件存储)来管理,它会把大文件存在单独的存储里,不会污染Git历史
  • 提交前可以用git status或者git ls-files检查一下,避免不小心把大文件加进去

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:28:40