提交代码后向GitHub推送提示大文件超限报错如何解决?
问题根源
你虽然在工作目录删除了.parcel-cache文件夹,但该大文件已经被提交到了你本地的Git提交历史中,推送时Git会将所有历史提交的文件同步到远程,因此依然会触发体积超限报错。parcel的缓存目录是本地构建生成的临时文件,本身就不需要提交到远程仓库。
解决步骤
- 首先将Parcel缓存目录加入忽略列表,避免后续再次提交
打开项目根目录的.gitignore文件(没有就新建一个),添加以下内容:
后面两个是Parcel项目常规需要忽略的目录,也可以一起添加避免后续出现同类问题。.parcel-cache/ node_modules/ dist/ - 从Git提交历史中彻底移除
.parcel-cache文件
分两种场景选择对应方案:- 场景1:大文件只存在于最近一次提交中
执行以下命令:git rm -r --cached .parcel-cache git commit --amend --no-edit - 场景2:大文件已经存在于更早的多次提交历史中
先安装git filter-repo工具(Git官方推荐的历史重写工具,大部分操作系统的包管理器都可以直接安装),之后执行:
该命令会遍历你本地所有提交历史,完全删除所有和git filter-repo --path .parcel-cache --invert-paths.parcel-cache相关的文件记录。
- 场景1:大文件只存在于最近一次提交中
- 推送修改到远程仓库
因为我们修改了Git提交历史,需要用强制推送命令:git push origin main --force-with-lease--force-with-lease比普通--force更安全,会先检查远程有没有你本地未同步的新提交,避免误覆盖他人代码。
内容的提问来源于stack exchange,提问作者Nez Mustafa
相关产品推荐
相关产品推荐

