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

NextJS项目推送到GitHub报错:已删大视频仍无法推送

解决GitHub推送因历史大文件报错的问题

问题根源:你删除文件只是在当前提交中移除了它,但该大文件的记录仍然存在于Git历史中。推送时Git会处理所有历史对象,因此仍会触发GitHub的文件大小限制。

步骤1:定位大文件所在的历史提交

先确认这个视频文件是在哪次提交中被添加的:

git log --all -- public/assets/demo-vid.mov

执行后会输出包含该文件的提交哈希值,记下来。

步骤2:根据提交位置选择修复方式

情况A:大文件是最近一次提交添加的(还未推送到远程或刚添加就删除)

直接撤销上一次提交,重新整理后推送:

# 撤销最近一次提交(保留本地修改,仅撤销提交记录)
git reset HEAD^
# 确认视频文件已删除,重新提交
git add .
git commit -m "Remove large video file and recommit"
# 推送
git push origin main

情况B:大文件已存在于历史提交中(之前已提交过,后来删除)

需要彻底改写Git历史,清除该文件的所有痕迹:

# 遍历所有分支和标签,移除历史中的大文件
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch public/assets/demo-vid.mov' --prune-empty --tag-name-filter cat -- --all
# 清理本地Git缓存,移除无用对象
git reflog expire --expire=now --all && git gc --prune=now --aggressive
# 强制推送到远程(注意:强制推送会覆盖远程分支,若多人协作需提前沟通)
git push origin main --force

预防措施

  • 不要将超过100MB的文件直接提交到Git仓库,可使用Git LFS管理大文件,或把视频等静态资源托管到CDN服务,在NextJS项目中通过链接引用。
  • 提交前可使用git status检查文件,避免误提交大文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:42:16