Git LFS跟踪所有.bin文件时小体积.bin文件推送失败该如何解决
报错原因
- Git LFS存在默认最小跟踪文件阈值:多数版本的Git LFS默认仅将体积大于等于128字节的文件转换为LFS指针存储到本地LFS对象库,你配置了.gitattributes跟踪所有
.bin文件,但132字节的B.bin刚好卡在阈值附近(部分版本阈值更高),未被自动转换为LFS格式,推送时LFS服务校验不到对应的LFS对象就会报缺失错误。 - 文件跟踪状态冲突:如果你是在将B.bin添加到Git暂存区之后才写入.gitattributes的LFS跟踪规则,已经存入普通Git对象库的B.bin不会自动转换为LFS存储格式,也会触发该报错。
解决步骤
- 撤销当前未推送的错误提交,清空暂存区:
git reset --soft HEAD~1 git rm --cached -r .
- 调整Git LFS最小跟踪阈值为1字节,确保所有体积的
.bin文件都会被LFS处理:
git config lfs.minbytes 1 git config lfs.fetchinclude '*.bin'
- 执行迁移命令,将仓库内所有
.bin文件从普通Git存储转换为LFS存储格式:git lfs migrate import --include="*.bin" --yes - 重新提交并推送即可:
git add -A git commit -m 'initial commit with all bin files tracked by LFS' git push --set-upstream origin main
内容的提问来源于stack exchange,提问作者Isa Dzhumabaev
相关产品推荐
相关产品推荐

