我继承了一个一直使用 Git LFS 来跟踪某些扩展的存储库。我想从 LFS 中删除所有文件并完全停止使用它。
在我取消跟踪所有扩展名(即留下空的 .gitattributes 文件)后,当我尝试
git lfs ls-files -s
命令时,我发现它似乎仍然认为所有长度为 0 字节的文件仍在 LFS 中,例如
e3b0c44298 * source/BIM/Graphics/gizmo_home.cpp (0 B)
e3b0c44298 * source/BIM/Graphics/gizmo_home.h (0 B)
e3b0c44298 * source/BIM/Graphics/gizmo_show.cpp (0 B)
e3b0c44298 * source/BIM/Graphics/gizmo_show.h (0 B)
e3b0c44298 * source/serverapp/baseline_object_cache.h (0 B)
其中的数量很少,以上只是完整列表的示例。
我真的不明白为什么要列出这些文件。更糟糕的是,我似乎无法将它们从 LFS 中删除。有趣的是,尽管它们都是不同的文件,但它们都共享相同的 OID (e3b0...)。据我所知,LFS 从未跟踪过文件扩展名(.h、.cpp 等),因此它们最初是如何进入那里的还是一个谜。
任何人都可以建议如何从 LFS 中删除这些文件吗? 或者只是如何从 LFS 中删除每个文件。如果有人能解释为什么零字节文件似乎无法删除,我有兴趣了解原因。
将 Git for Windows 和 Git LFS 更新到最新版本后,这些零字节文件不再被报告为存储在 LFS 中。我必须假设我使用的旧版本 LFS(3.0.1,iirc)有一点问题,并且已被修复。