Git LFS配置后仍尝试上传非LFS大文件的解决方法咨询
解决Git LFS配置后仍推送大量非LFS文件的问题
你的问题核心是之前未启用LFS时提交的大FBX文件仍存在于Git历史中,即使后续配置了LFS,Git推送时还是会尝试上传这些历史里的原始大文件。以下是彻底解决的步骤:
关键修复步骤
1. 先备份仓库(必做)
复制整个本地仓库文件夹到安全位置,防止重写历史时丢失数据。
2. 重写Git历史,将旧提交中的大文件转为LFS指针
运行以下命令,把当前分支历史中所有.fbx文件替换为LFS指针:
git lfs migrate import --include="*.fbx" --include-refs=HEAD
- 如果需要处理所有分支,把
--include-refs=HEAD改成--include-refs=all - 如果还有其他大文件类型(比如纹理、音频),可以扩展
--include参数,例如--include="*.fbx,*.png,*.wav"
3. 验证修复结果
- 执行
git lfs ls-files,确认所有目标大文件都已被LFS跟踪 - 查看任意旧提交中的FBX文件:
git show <旧提交哈希>:Assets/Model/xxx.fbx,如果输出是类似oid sha256:xxxxxx size xxx的LFS指针,说明转换成功
4. 强制推送重写后的历史
因为修改了Git历史,需要强制覆盖远程分支:
git push --force origin <你的分支名>
注意:如果有其他协作者,必须提前告知他们,让他们放弃本地分支,重新从远程拉取最新版本,避免历史冲突。
5. 清理本地冗余数据
删除本地仓库中残留的旧非LFS大文件对象,释放磁盘空间:
git reflog expire --expire=now --all && git gc --prune=now --aggressive
额外注意事项
- 如果你之前基于旧分支创建了新分支,需要对新分支也执行
git lfs migrate import命令,或者删除新分支,基于修复后的主分支重新创建。 - 确保
.gitattributes文件已正确提交到仓库,避免后续新添加的大文件再次进入Git普通存储。
内容的提问来源于stack exchange,提问作者Ben Lock
相关产品推荐
相关产品推荐

