首页 > 解决方案 > 如何在历史记录中找到已删除的 GIT LFS 文件?

问题描述

我收到一封来自 GitHub 的电子邮件,告诉我我的 Git LFS 配额已接近 1 GB。但是,使用 时git lfs ls-files,它只显示 3 个文件,总共大约 100 MB。在过去的某个时候,我记得在删除它之前添加了一个 ~800 MB 的文件到 Git LFS,但它似乎仍然对我不利。

该文件将有一个“.spp”扩展名,但它不会显示在ls-files. 在这一点上,我只是想找到文件的 ID,所以我希望可以从历史记录中删除它,但我什至找不到文件。

有没有办法通过 git lfs 历史来查找所有添加的文件,即使它们不再存在?

谢谢。

标签: gitgit-lfs

解决方案


git find fat commit 的答案涵盖了查找大型提交。您可以使用BFG Repo Cleaner删除历史记录中的大文件。但有一个更好的解决方案。

相反,您应该将大文件历史记录转换为 git-lfs。git lfs migrate提供工具。它们都面向某些文件扩展名。

例如,运行git lfs migrate info以查找大文件集。例如...

$ git lfs migrate info --everything
migrate: Sorting commits: ..., done                                                                 
migrate: Examining commits: 100% (296/296), done                                                    
*.html  2.3 MB  144/144 files(s)    100%
*.rb    1.7 MB  699/712 files(s)     98%

然后使用git lfs migrate import将其历史转换为使用 Git LFS。例如,要转换所有.spp文件...

git lfs migrate import --include='*.spp' --everything

推荐阅读