git - 如何克隆包含 Git LFS 文件的存储库?
问题描述
在我的 Ubuntu 系统上,我安装了 Git LFS 和 Git,并克隆了一个存储库,其中一些文件由 Git LFS 管理。但是这些文件没有下载,除了一个标记文件。(直到我检查了文件大小,我才意识到它们不是整个文件,因为它们在我的文件系统中以正确的名称显示在正确的位置。)
我从这个答案中看到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
. 哪个将为嵌套在我创建的目录中的 repo 创建一个目录,不是吗?不知何故,这似乎是错误的。
克隆这个 repo 需要几个小时,所以我想确信我做对了。查看GitHub 上的文档,似乎上面的命令集是正确的 - 如果您阅读了整个内容。信息位由一千个左右的单词分隔。这是这样做的方法吗?
解决方案
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
无需任何设置即可自动向您显示正确的内容。
推荐阅读
- javascript - 隐藏的侧边菜单和 HTML5 颜色冲突
- c - 打印无效的 C 字符串成功
- python - 如何根据另一列中的值在数据框中设置零和一
- python - 防止将数字添加到数组槽或上限值的大多数 Pythonic 方法,如果添加会将数字超出其数据类型范围
- elasticsearch - 在 Elasticsearch 中的 TEXT 字段的情况下,有什么方法可以进行精确匹配?
- mongodb - 如果仅存在于查询 mongodb 中,如何推送或拉入嵌入数组
- react-native - React Native:显示侧边栏但无法与之交互
- python - 使用 Python 根据上次修改更新文件
- c# - 基类包含字段'CrystalReportViewer',但其类型与控件类型不兼容?
- jupyter - Jupyter 仪表板在打开包含许多文件的路径时冻结