You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git LFS仍追踪零字节文件,如何彻底移除所有LFS追踪文件并停用LFS?

彻底移除Git LFS中的零字节追踪文件并完全停用Git LFS

现象解释

你看到的e3b0c44298是空文件的SHA-1哈希值——所有零字节文件的内容完全一致,因此Git LFS会为它们分配同一个OID。这些空文件被LFS追踪,大概率是以下原因导致:

  • 历史操作中曾通过git lfs track命令直接追踪过这些文件
  • 旧版.gitattributes中存在通配符规则,意外匹配到了这些空文件
  • 部分旧版本Git LFS存在逻辑缺陷,会自动将空文件纳入追踪范围

即使现在.gitattributes已清空,本地Git索引和LFS缓存中仍保留着这些文件的追踪记录,因此git lfs ls-files -s仍会列出它们。

解决方案

步骤1:将所有LFS追踪文件转换为普通Git对象

执行以下命令,把仓库中所有被LFS追踪的文件(包括这些空文件)转换为Git原生存储的对象:

git lfs migrate export --everything --include="*"

--everything参数会处理仓库的所有分支和历史提交,确保彻底清除LFS痕迹。

步骤2:清理本地LFS缓存与配置

  1. 移除本地LFS相关缓存目录:
rm -rf .git/lfs
  1. 重置Git索引,重新识别所有文件:
git rm --cached -r .
git add .
  1. 提交更改:
git commit -m "Remove all Git LFS tracking and convert files to regular Git objects"

步骤3:停用Git LFS(可选)

如果需要完全停用仓库的Git LFS功能,执行:

git lfs uninstall

该命令会移除仓库级和全局的LFS配置。

步骤4:推送到远程仓库(若需同步)

如果要将更改同步到远程仓库,由于修改了历史提交记录,需要执行强制推送(注意提前告知协作成员,避免冲突):

git push --force

验证

执行以下命令确认所有LFS追踪记录已清除:

git lfs ls-files -s

若输出为空,则说明清理完成。

内容的提问来源于stack exchange,提问作者Eleco Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:55:13