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

仅推送指定文件夹到GitHub时触发大文件限制报错如何解决

问题根本原因

你虽然本次只提交了android文件夹的内容,但你本地仓库的历史提交记录中,已经存在这个ios目录下的超大文件,git推送时会把所有待同步的历史提交内容一起推送到远端,因此触发了大小限制。


解决步骤

第一步:清理暂存区与未推送的本地提交中的冗余文件

首先把你刚才未推送成功的提交重置:

git reset --soft HEAD~1

将非android目录的多余文件从git追踪列表中移除(--cached参数只会删除git追踪记录,不会删除你本地的实际文件):

git rm -r --cached .

重新仅添加android目录并提交:

git add android/
git commit -m "仅提交android目录内容"

此时先尝试推送,如果仍报相同的大文件错误,继续执行第二步。

第二步:清理历史提交记录中的大文件

如果第一步推送失败,说明大文件存在于更早的未推送本地提交历史中,需要清理git历史记录:

# 单独删除指定大文件的历史记录
git filter-repo --invert-paths --path 'build/ios/Release-iphoneos/Flutter.framework/Flutter'

# 如果整个build目录都不需要提交,直接过滤整个build目录更高效
# git filter-repo --invert-paths --path 'build/'

第三步:配置.gitignore避免后续误提交冗余文件

在项目根目录创建.gitignore文件,添加以下规则:

# 忽略所有构建产物目录
build/
# 忽略整个ios目录(如果不需要提交ios相关代码)
ios/
# 可自行添加其他不需要提交的本地文件规则

提交.gitignore配置:

git add .gitignore
git commit -m "添加.gitignore规则"

第四步:推送至远端

git push origin dev

可选快速方案(无需保留本地提交历史的场景)

如果你不需要保留本地仓库之前的所有提交记录,可通过重新初始化git仓库的方式快速解决:

  • 删除项目根目录下的.git文件夹
  • 执行以下命令:
git init
git remote add origin <你的远端仓库地址>
git checkout -b dev
git add android/
git add .gitignore
git commit -m "首次提交android目录内容"
git push -f origin dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:36:03