Git LFS:从整个存储库中获取完整的列表

vu8f3i0k  于 2023-11-15  发布在  Git
关注(0)|答案(4)|浏览(130)

我只找到了git lfs ls-files,但是这个命令给予的只是一个特定参考的列表。
有一种方法可以从Git仓库中获得LFS对象的整个列表吗?

wfauudbj

wfauudbj1#

您可以在 *Git LFS v2.4.0及更高版本 * 中使用--all标志执行此操作

git lfs ls-files --all

字符串
你可以在this pull request中阅读更多。

mu0hgdu0

mu0hgdu02#

如果你有访问git LFS服务器的权限,你可以在lfs/objects文件夹中查看。它应该包含一个文件夹结构,就像一个搜索树一样用于存储对象。在某个级别(可能是第三层?)是对象本身。
一个小例子,我刚刚转换为git(和git lfs)来测试它,看起来像这样:

$ ls lfs/objects/*/*
lfs/objects/9f/ef:
9fef0fcd855a78effd175cdf5a49a14b57334b40f1ad0c75317d6cbc0bb29595

lfs/objects/a5/f2:
a5f207bf721d3cbf62d298b6e2c9fa7cbdb3e37c7f44590a6c8be76560d7b9d7

lfs/objects/ca/63:
ca631009296d9de54dde2f70fec997aa0b22f624ed8f6fecc763c684317ba825

字符串
在我的例子中,这是在.git文件夹中。我没有把它推到git LFS服务器上,但我假设那里的结构是一样的。这应该(据我所知)给予你所有存储在git LFS中的文件的哈希值(作为文件名)。
注意事项:我是基于对git LFS的实验和观察,而不是基于对git LFS背后的存储系统如何工作的更深入的理解。

olmpazwi

olmpazwi4#

“git lfs ls-files”命令不能按照你想要的方式列出仓库的所有LFS对象。该命令需要列出特定引用的LFS对象。如果你记得每个引用都代表仓库历史的快照,那么很容易理解为什么它不能这样做。“git ls-files”命令也会发生同样的行为,你不能同时列出所有版本库的所有文件。

相关问题