克隆 Git LFS 文件时未完全下载

12

我有一个问题,当我运行git clone命令时,我会发现LFS中的一些二进制文件会被克隆,但它们非常小,只有130字节,实际上它们应该是100MB。当我在Github上查看时,它显示它们的大小为100MB。当我在Github上点击下载时,也显示它们的大小为100MB。

如果我执行 git lfs clone 命令,它将是正确的。

如果在我执行 git clone 命令之后,我执行以下操作:

git lfs pull origin [BRANCH]

它还将获取所有正确大小的文件。

我真的很困惑这里发生了什么?

git lfs clonegit clone有什么区别?为什么使用git LFS可以正确克隆文件,而普通的git不能。

2个回答

6

你在工作树中看到的文件是Git LFS指针文件。这些文件是在仓库中存储的对象,由Git LFS转换成大型文件。

通常情况下,如果你运行了git lfs install,则文件会正确检出。此命令会向Git注册Git LFS浸染和清洗过滤器,以便Git正确调用它们。 如果你没有运行该命令或未配置过滤器,则Git不知道如何调用Git LFS,除非你要求Git LFS为你检出文件,否则你的文件将无法检出。

因此,要解决此问题,请运行git lfs install,它应该会适当地配置你的仓库。这应该会修改你的~/.gitconfig 文件,所以你只需要在每个系统上运行一次。


我得到了:git: 'lfs' 不是 git 命令。请参阅 'git --help'。 - Stepan Yakovenko
2
然后您需要安装Git LFS。它与Git for Windows一起提供,否则包通常称为git-lfs,无论是在Homebrew还是Linux发行版上。 - bk2204

1

我终于找到了为什么我的子模块没有完全克隆:

在我的.gitattributes文件中,我的图像文件的过滤器是

*.jpg filter=lfs diff=lfs merge=lfs -text

然而,所有图像文件的扩展名都是大写字母:.JPG 为大写的.JPG文件添加另一行到.gitattributes中解决了问题。主仓库中的过滤器都是正确的,因此问题并没有在那里出现!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接