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

Git推送大文件失败 超出GitHub100MB单文件限制报错解决

问题根因

你的判断准确,报错明确显示src/assets/videos/introduction.mp4文件大小为107.64MB,超出GitHub单文件100MB的上传硬限制,远端预接收钩子直接拦截了本次推送。

解决方案

根据你是否需要将该视频纳入仓库版本管理,二选一操作即可:

方案1:需要保留仓库内的视频文件,使用Git LFS管理大文件

Git LFS会将大文件存储在独立的文件存储服务,Git仓库内仅保留体积极小的指针文件,不会触发大小限制,操作步骤:

  • 安装Git LFS工具后,进入本地仓库根目录执行初始化命令:
    git lfs install
  • 配置LFS追踪所有mp4格式文件:
    git lfs track "*.mp4"
  • 提交生成的.gitattributes规则文件到仓库:
git add .gitattributes
git commit -m "chore: use lfs track mp4 files"
  • 如果你之前已经把该大视频提交到了本地提交历史,执行命令将其从普通Git存储迁移到LFS:
    git lfs migrate import --include="src/assets/videos/introduction.mp4"
  • 重新执行推送命令即可完成上传:
    git push --set-upstream origin my-branch

方案2:不需要将视频纳入Git版本管理,移除大文件并配置忽略

如果该视频属于临时素材、构建产物或不需要做版本追踪的内容,直接将其从Git提交记录中移除,配置忽略规则避免后续误提交即可,操作步骤:

  • 执行命令将大文件从Git暂存区/提交历史中移除:
    git rm --cached src/assets/videos/introduction.mp4
  • 打开仓库根目录的.gitignore文件,添加忽略规则,避免后续视频文件被误加入提交:
    src/assets/videos/*.mp4
  • 如果大文件仅存在于最近一次未推送的提交中,执行命令修改最近一次提交即可:
git add .gitignore
git commit --amend --no-edit

如果大文件存在于更早的多次本地提交中,执行命令清理整个分支历史里的大文件引用:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch src/assets/videos/introduction.mp4' --prune-empty --tag-name-filter cat -- --all

  • 执行命令清理本地缓存的冗余大文件对象:
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive
  • 重新执行推送命令即可:
    git push --set-upstream origin my-branch

注意:如果是多人协作的公共分支,清理提交历史后需要通知所有协作者重新拉取最新分支,避免本地留存的旧提交历史把大文件再次推送至远端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 04:51:31