GitHub仓库无大文件却启用LFS?如何撤销恢复?
问题原因
- 你之前添加的Unity专属
.gitattributes文件(多半是Unity模板自动生成或手动配置的),把大量Unity常用资源格式(比如.fbx、.png、.mat、.prefab等)都标记成了LFS追踪对象。这些文件单个虽没超20MB,但架不住数量庞大,累积上传后直接耗掉了近80%的LFS配额。 - GitHub Desktop推送卡住,本质是LFS对象数量、体积过大,客户端处理时超时或资源不足导致的。
解决步骤
1. 撤销过度的LFS追踪配置
- 打开项目根目录的
.gitattributes文件,删掉所有和LFS相关的规则行(比如带filter=lfs、diff=lfs、merge=lfs的内容,以及对应文件类型的标记)。如果是Unity自动生成的文件,也可以直接替换成只针对大文件的精简版本。 - 在Git Bash里执行以下命令,停止追踪原LFS文件并提交修改:
# 逐个取消已追踪的文件类型,或者编辑.gitattributes后直接执行下面的添加提交 git lfs untrack "*.fbx" git lfs untrack "*.png" git lfs untrack "*.mat" git add .gitattributes git commit -m "Remove excessive LFS tracking rules"
2. 清理远程仓库的LFS对象(可选,用于回收配额)
⚠️ 注意:此操作会修改远程仓库历史,若团队协作务必提前和队友沟通!
- 把本地仓库中已被LFS追踪的文件转换回普通Git对象:
git lfs migrate export --everything --include="*.fbx,*.png,*.mat" # 替换成你之前用LFS追踪的所有文件类型 - 强制推送到远程分支:
git push origin main --force - 登录GitHub仓库后台,进入LFS存储设置页面,手动清理已废弃的LFS对象(GitHub默认会自动清理30天前的废弃对象,也可手动触发)。
3. 重新配置精准的LFS规则
- 只给真正体积较大的文件类型开启LFS追踪(比如
.psd、.blend这类源文件),在.gitattributes中添加:*.psd filter=lfs diff=lfs merge=lfs -text *.blend filter=lfs diff=lfs merge=lfs -text - 提交配置修改:
git add .gitattributes git commit -m "Configure targeted LFS tracking"
内容的提问来源于stack exchange,提问作者StuckInPhDNoMore
相关产品推荐
相关产品推荐

