GitHub单个文件超100MB被拒是硬性限制,须用Git LFS解决:先执行git lfs install,再git lfs track指定文件类型,最后提交.gitattributes并add大文件,顺序错误将导致LFS失效。

GitHub拒绝大于100MB的文件,不是VSCode的问题
VSCode本身不限制文件大小,真正卡住的是GitHub的服务器策略:单个文件超过100MB会被git push直接拒绝,报错类似remote: error: File xxx.zip is 124.50 MB; this exceeds GitHub's file size limit of 100.00 MB。这不是配置错误,也不是代理或认证问题,是硬性限制。
用Git LFS托管大文件,三步走通
Git LFS(Large File Storage)是官方推荐方案,它把大文件替换成指针,实际内容存到LFS服务器。关键点不在VSCode操作,而在终端里执行以下命令:
- 先安装LFS:
git lfs install(只需一次,全局生效) - 声明要追踪的大文件类型,比如:
git lfs track "*.psd"或git lfs track "data/model.bin"—— 注意路径要匹配你实际文件位置 - 提交
.gitattributes(LFS自动生成):git add .gitattributes,再git commit -m "track large files via lfs"
之后再git add那些大文件,它们就会被LFS接管。推送时不会报100MB错,但需确保远程仓库已启用LFS(新建仓库默认支持,老仓库不用额外操作)。
别用git push -f硬推,会破坏LFS关联
有人试过加-f强制推送大文件,结果是:虽然看似成功,但LFS指针没上传,别人git clone下来拿到的是空壳文件,根本打不开。更糟的是,git lfs ls-files会显示missing状态,修复成本远高于重来。
如果已经误推过,得彻底清理:
- 删掉本地大文件和
.gitattributes中对应行 - 运行
git rm --cached <file>(不删工作区) - 重新
git lfs track并提交.gitattributes - 再
git add <file>→git commit→git push
替代方案:纯手动传,绕过Git
如果只是偶尔传一个模型/数据集,且不需版本历史,最省事的方式是放弃Git:
- 把大文件单独压缩成
.zip或.tar.gz - 去GitHub仓库页面 →
Releases→Draft a new release→ 在“Attach binaries”里拖入上传 - 这样文件挂在Release下,链接稳定,下载不限速,也不占Git历史体积
注意:Release附件不能用git clone拉取,得手动下载,适合交付物而非源码依赖。
真正容易被忽略的是git lfs track必须在git add之前执行——顺序反了,大文件就进普通Git对象库了,后续补救极麻烦。


















