在我的 Ubuntu 系统上,我安装了 Git LFS 和 Git,并克隆了一个存储库,其中一些文件由 Git LFS 管理。但是这些文件没有下载,除了标记文件。(在我检查文件大小之前,我没有意识到它们不是整个文件,因为它们在我的文件系统中以正确的名称显示在正确的位置。)
我从这个git lfs clone已被弃用的答案中看到,git clone应该可以正常工作。但是当我尝试这样做时,我感到困惑。我习惯于运行git clone https://foobar.git并让它设置目录。但是 Git LFS 将无法工作,除非它已git lfs install在每个使用它的目录中初始化。(这就是为什么这第一次不起作用,至少现在我知道了。)
所以我设置了目录,RANgit init和git lfs install它里面,然后跑去git clone https://foobar.git。哪个将为嵌套在我创建的目录中的 repo 创建一个目录,不是吗?这在某种程度上似乎是错误的。
克隆这个 repo 需要几个小时,所以我想确信我做对了。查看GitHub上的文档,似乎说上述命令集是正确的 - 如果您阅读整篇文章。信息位由一千个字左右分隔。这是这样做的方式吗?
bk2*_*204 18
git lfs install 做两件事:它在您的本地存储库中设置挂钩,并调整您的全局(即特定于用户的)配置以包含 Git LFS 正常工作所需的过滤器命令。
如果您还没有在存储库中,您可能希望运行git lfs install --skip-repo并让它将过滤器命令安装到您的~/.gitconfig. 如果您自己管理此文件,请将它添加的行复制到您管理的行中。然后,进入一个非 Git 控制的目录并运行git lfs env并确保最后几行如下所示:
git config filter.lfs.process = "git-lfs filter-process"
git config filter.lfs.smudge = "git-lfs smudge -- %f"
git config filter.lfs.clean = "git-lfs clean -- %f"
Run Code Online (Sandbox Code Playgroud)
这将显示您的配置已正确设置。完成设置后,只需克隆存储库,并假设它在其.gitattributes文件中设置了正确的条目,Git 将自动下拉必要的 Git LFS 文件,并且当调用 Git LFS 时,它将安装必要的挂钩。
在 Debian 上,Git LFS 包默认安装过滤器命令,因此它可能在 Ubuntu 上执行相同的操作。您可以检查 中的条目/etc/gitconfig,如果它们存在,您根本不需要做任何事情;事情应该可以正常工作,并且git lfs env无需任何设置即可自动向您显示正确的内容。