能否在不安装Git LFS的情况下克隆Git LFS仓库?

17

使用Git LFS将大文件推送到git仓库时,没有安装git-lfs的用户是否可以在不进行额外设置的情况下克隆它?


2
我怀疑他们可以,但是这些大文件只包含引用而不是内容。试一试看能否实现? - Schwern
一个相关的问题得到了一个可能与此处相关的答案:https://dev59.com/KKfja4cB1Zd3GeqP2uQm#48051013 - davidovitch
3个回答

9

我刚刚尝试了你建议的方法。我使用 Git LFS 创建了一个存储 .csv 文件的代码库。我将该代码库推送到 GitHub 上。然后,在没有安装 Git LFS 的系统上,我尝试克隆该代码库,但是遇到了错误,提示找不到 "git lfs" 命令:

λ git clone https://github.com/myusername/git_lfs_tests.git
Cloning into 'git_lfs_tests'...
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 2), reused 10 (delta 1), pack-reused 0
Unpacking objects: 100% (11/11), done.
git-lfs filter-process: git-lfs: command not found
fatal: The remote end hung up unexpectedly
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

我安装了Git LFS后,它正常工作。因此,似乎需要在系统上安装git lfs才能克隆仓库。


2
我不确定这是否完全正确...你是如何卸载 git-lfs 的?你只是从 PATH 中删除了二进制文件,还是首先运行了 git lfs uninstall 并/或者从你的 ~/.gitconfig 中删除了 lfs 条目?如果你没有做后者,那么你得到的错误是因为 lfs 条目仍然留在你的 ~/.gitconfig 中。如果没有这些条目,我相信克隆操作将会悄无声息地失败(获取 LFS 占位符对象而不是实际文件)。 - alecbz
我安装了git-lfs sudo apt-get install git-lfs - dazza5000
你的打印输出显示“克隆成功”。它可以工作,但你没有得到任何LFS文件。你只会得到一个指向存储库位置的占位符。 - travelingbones

7

你肯定可以在没有安装lfs的情况下克隆一个lfs repo。实际上,git lfs clone已经被弃用了。lfs只在检出时才重要,而不是在克隆时。如果你在没有lfs的情况下进行检出(这可能发生在克隆期间),你将得到包含引用的占位符文件,而不是真正的大文件。


补充一点:要替换占位符(git lfs 跟踪的)文件,请按照以下步骤进行操作:(1)安装 git-lfs;(2)删除任何占位符文件;(3)运行 git checkout . 命令,它会自动下载这些文件。详情参见: https://github.com/git-lfs/git-lfs/issues/325 - travelingbones

0

如果对于你来说,将存储库下载为.zip文件是可行的,这里有一个可能的建议。我用免费的Github帐户下载一个大型项目时,最终成功了:

  1. 将存储库fork到你的用户之一,然后进入存储库设置
  2. 在存档部分下找到"包括Git LFS对象在存档中"并选中它
  3. 进入Danger Zone部分,选择"存档此存储库"
  4. 确认并授权
  5. 返回存档的存储库
  6. 以.zip格式下载
  7. 下载会在开始下载LFS对象前暂停一分钟左右。请等待,然后它应该继续。

感谢这位Git用户:
(https://github.com/nabla-c0d3/nassl/issues/17#issuecomment-804149931)


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