已用Git LFS仍无法向GitHub推送大文件,求解决方案
解决Git LFS无法推送大文件到GitHub的问题
问题根源:你的本地仓库提交历史中已经存在未通过Git LFS追踪的该大文件,即便现在启用LFS追踪,历史提交里的原文件仍会被GitHub检测到,触发大小限制报错。
解决步骤:
- 备份本地仓库(可选但推荐,避免历史修改导致数据丢失)
- 清理历史提交中的大文件:
使用git filter-repo工具移除所有历史提交里的目标文件(该工具比旧的git filter-branch更安全高效),执行命令:git filter-repo --path src/data/indonesia-cities.json --invert-paths - 重新配置Git LFS并提交:
# 确保LFS已初始化 git lfs install # 追踪目标文件 git lfs track "src/data/indonesia-cities.json" # 添加配置文件和目标文件 git add .gitattributes src/data/indonesia-cities.json # 提交更改 git commit -m "Track indonesia-cities.json with Git LFS" - 强制推送更新远程仓库:
git push --force origin <你的分支名称>
注意事项:
- 若为多人协作仓库,强制推送后其他协作者需重新克隆仓库,或执行
git pull --rebase同步,避免代码冲突 - 可通过
git lfs ls-files命令验证目标文件是否已被LFS正确追踪 - 若之前执行过
git lfs untrack,需确保.gitattributes中对应条目已移除后再重新追踪
内容的提问来源于stack exchange,提问作者ebuzz168
相关产品推荐
相关产品推荐

