在Ubuntu系统上,我安装了Git LFS和Git,并克隆了一个存储库,该存储库的某些文件由Git LFS管理。但是除了标记文件之外,这些文件没有下载。 (直到我检查了文件大小后,我才意识到它们不是整个文件,因为它们在我的文件系统中以正确的名称显示在正确的位置。)
我从this answer看到git lfs clone
已被弃用,只需git clone
就可以了。但是当我尝试时,我感到困惑。我习惯只运行git clone https://foobar.git
并让它设置目录。但是,除非已在每个使用它的目录中用git lfs install
对其进行了初始化,否则Git LFS将无法工作。 (这就是为什么这第一次不起作用的原因,至少现在我知道。)
因此,我设置了目录,在其中运行git init
和git lfs install
,然后运行git clone https://foobar.git
。哪个将为嵌套在我创建的目录中的仓库创建目录,不是吗?这似乎以某种方式是错误的。
要克隆此存储库将需要几个小时,因此我想确信自己做得对。看着documentation on GitHub,似乎上面的命令是正确的-如果您已阅读完整的内容。信息的比特之间相距大约一千个字。是那样做吗?
答案 0 :(得分:1)
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"
这将向您显示您的配置已正确设置。设置完成后,只需克隆存储库,并假设在其.gitattributes
文件中使用正确的条目进行设置,Git将自动拉出必要的Git LFS文件,并且在调用Git LFS时,它将安装必要的挂钩。
在Debian上,Git LFS软件包默认情况下会安装过滤器命令,因此在Ubuntu上可能也是如此。您可以检查/etc/gitconfig
中的条目,如果存在这些条目,则完全不需要执行任何操作。一切正常,git lfs env
会自动显示正确的内容,而无需进行任何设置。