git 克隆 lfs 文件未完全下载



我有一个问题,如果我运行 git 克隆,我在 LFS 中有一些二进制文件,这些文件会克隆,但会非常小,比如 130 字节,而实际上它们应该是 100mb。当我在Github上时,它显示它们是100mb。当我在Github上按下载时,它显示它们是100mb。

当我这样做时git lfs clone它将是正确的。

如果在我git clone之后我这样做:

git lfs pull origin [BRANCH]

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

我真的很困惑这是怎么回事?

git lfs clonegit clone有什么区别?为什么它使用 git LFS 正确克隆文件,而不是常规 git。

你在工作树中看到的文件是 Git LFS 指针文件。 它们是存储在存储库中的对象,由 Git LFS 转换为大文件。

通常,如果您运行了git lfs install,则会正确签出文件,这会使用 Git 注册 Git LFS 污迹和清理过滤器,以便 Git 正确调用它们。 如果你没有运行它或以其他方式配置过滤器,那么 Git 不知道调用 Git LFS,除非你要求 Git LFS 为你做,否则你的文件不会被签出。

因此,要解决此问题,请运行git lfs install,它应该适当地配置您的存储库。 这应该会修改您的~/.gitconfig,因此您只需为每个系统运行一次。

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

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

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

但是,图像文件的扩展名中都有大写字母:*.JPG

为大写.JPG文件在 .gitattributes 中添加另一行解决了这个问题。主存储库中的过滤器都是正确的;因此问题没有发生在那里!

最新更新