如何克隆包含Git LFS文件的存储库?

21
在我的Ubuntu系统上,我安装了Git LFS和Git,并克隆了一个使用Git LFS管理部分文件的存储库。但是这些文件没有下载,除了一个标记文件外。(我没有意识到它们不是完整的文件,直到检查了文件大小,因为它们在我的文件系统中以正确的名称显示在正确的位置。)
这个答案中,我知道git lfs clone已经被弃用,简单地使用git clone应该可以工作。但当我尝试这样做时,我感到困惑。我习惯于只运行git clone https://foobar.git,让它设置目录。但是,Git LFS除非在每个使用它的目录中进行了初始化git lfs install,否则它将无法工作。(至少现在我知道了这一点。)
因此,我设置了目录,在其中运行了git initgit lfs install,然后运行了git clone https://foobar.git。这会创建一个嵌套在我创建的目录中的存储库目录,对吗?这似乎不对。

克隆此代码库需要几个小时,所以我希望自己能够确信操作正确。查看GitHub上的文档,似乎它表明上述命令集是正确的 - 如果你读完整篇文档的话。但其中的信息相隔千言万语,这是否是正确的操作方式?

1个回答

26

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将自动显示正确的内容,无需任何设置。


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