如何克隆包含 Git LFS 文件的存储库?
How do I clone a repository that includes Git LFS files?
在我的 Ubuntu 系统上,我安装了 Git LFS 和 Git,并克隆了一个存储库,其中一些文件由 Git LFS 管理。但是除了标记文件外,这些文件没有下载。 (直到检查文件大小,我才意识到它们不是整个文件,因为它们在我的文件系统中以正确的名称显示在正确的位置。)
我从 看到 git lfs clone
已被弃用,只需 git clone
就可以了。但是当我尝试这样做时,我感到困惑。我习惯于 运行 git clone https://foobar.git
并让它设置目录。但是 Git LFS 将无法工作,除非在每个使用它的目录中用 git lfs install
初始化它。 (这就是为什么这第一次不起作用,至少现在我知道了。)
所以我设置了目录,里面有运行git init
和git lfs install
,然后是运行git clone https://foobar.git
。哪个将为嵌套在我创建的目录中的 repo 创建一个目录,不是吗?不知怎的,这似乎是错误的。
克隆此存储库需要几个小时,所以我想确信我做对了。查看 documentation on GitHub,上面的命令集似乎是正确的 - 如果您阅读了整篇文章。信息位由一千个单词左右分隔。是这样吗?
git lfs install
做了两件事:它在您的本地存储库中设置挂钩,并调整您的全局(即 user-specific)配置以包含 Git 所需的过滤器命令LFS 才能正常工作。
如果您还没有在存储库中,您可能想要 运行 git lfs install --skip-repo
并让它将过滤器命令安装到您的 ~/.gitconfig
中。如果您自己管理此文件,请将它添加的行复制到您管理的行中。然后,移动到 non-Git-controlled 目录和 运行 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
会自动向您显示正确的内容,无需任何设置。
在我的 Ubuntu 系统上,我安装了 Git LFS 和 Git,并克隆了一个存储库,其中一些文件由 Git LFS 管理。但是除了标记文件外,这些文件没有下载。 (直到检查文件大小,我才意识到它们不是整个文件,因为它们在我的文件系统中以正确的名称显示在正确的位置。)
我从 git lfs clone
已被弃用,只需 git clone
就可以了。但是当我尝试这样做时,我感到困惑。我习惯于 运行 git clone https://foobar.git
并让它设置目录。但是 Git LFS 将无法工作,除非在每个使用它的目录中用 git lfs install
初始化它。 (这就是为什么这第一次不起作用,至少现在我知道了。)
所以我设置了目录,里面有运行git init
和git lfs install
,然后是运行git clone https://foobar.git
。哪个将为嵌套在我创建的目录中的 repo 创建一个目录,不是吗?不知怎的,这似乎是错误的。
克隆此存储库需要几个小时,所以我想确信我做对了。查看 documentation on GitHub,上面的命令集似乎是正确的 - 如果您阅读了整篇文章。信息位由一千个单词左右分隔。是这样吗?
git lfs install
做了两件事:它在您的本地存储库中设置挂钩,并调整您的全局(即 user-specific)配置以包含 Git 所需的过滤器命令LFS 才能正常工作。
如果您还没有在存储库中,您可能想要 运行 git lfs install --skip-repo
并让它将过滤器命令安装到您的 ~/.gitconfig
中。如果您自己管理此文件,请将它添加的行复制到您管理的行中。然后,移动到 non-Git-controlled 目录和 运行 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
会自动向您显示正确的内容,无需任何设置。