git - 如何找到历史记录中已删除的 GIT LFS 文件?

标签 git git-lfs

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

该文件的扩展名是“.spp”,但它不会显示在 ls-files 中。此时我只是想找到该文件的 ID,以便希望将其从历史记录中删除,但我什至找不到该文件。

是否有某种方法可以通过 git lfs 历史记录来查找所有添加过的文件,即使它们不再存在?

谢谢。

最佳答案

the answers to 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

关于git - 如何找到历史记录中已删除的 GIT LFS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50822438/

相关文章:

git - 为什么 Bitbucket Server 在本地存储 LFS 对象?

git - Composer 说找不到 Git

git:冲突后将文件的不同阶段存储在索引/工作树中

git - 将 Master 上的所有新代码移动到 Git 中的新分支

git - 如何获得直接链接到github LFS(大文件存储)中的文件?

Git:减小 `.git/lfs/`的大小

git reset --hard 在 git-lfs < 1.5.6 的 CircleCI/Ubuntu 14 上挂起

git - SmartGIT 不要求 ssh key

git - SmartGit,无法推送, "remote: HTTP Basic: Access denied"

git - GIT LFS : Get the complete list from the whole repository