【问题标题】:git lfs, store file in actual locationgit lfs,将文件存储在实际位置
【发布时间】:2021-05-22 04:07:02
【问题描述】:

问题

不久前,我的团队开始使用 git LFS,我们的项目使用了大约 60 GB 的 bmp 文件。我将系统中的 bmp 文件推送到远程,所有图像都正确存储在 LFS 上。

每当同事拉取存储库时,就会发生奇怪的事情,bmp 文件会被下载但存储在不同的位置。图像文件夹现在包含一堆无用的指针,而不是实际的图像。

所需的解决方案

图像文件存储在它们的实际位置,而不是无用的指针。换句话说,我希望 lfs 文件的行为与所有常规文件一样。

【问题讨论】:

  • 在 Git 周围使用 LFS 包装器时,所有 Git stores 都是指针文件。包装器的工作是将这些替换为指向文件的内容。任何只获得指针文件的人都没有使用 LFS 包装器。找出他不使用包装器的原因,并纠正它。
  • @torek “使用 LFS 包装器”是什么意思?使用lfs时有不同的命令吗? |图像下载到本地系统,但存储在 .git 文件夹而不是 images 文件夹中。
  • Git-LFS 是或曾经是附加软件(它现在可能带有自己的 Git 实现以避免一些混淆;最初它是添加到任何标准 Git 的一些脚本)。如果你使用普通的 Git,你就没有使用 Git-LFS,并且会看到所有的指针文件。我自己实际上并没有使用 Git-LFS,但我已经看过它了,它的实现依赖于 Git 中的“干净”和“涂抹”过滤器——所以如果你使用一个普通的 Git 并添加附加组件,但不要不要真的把它们挂起来,你会遇到同样的问题。
  • 使用git lfs clonegit lfs init 而不是git clonegit init 应该建立所有正确的过滤。使用 git clone 代替......不会。
  • @torek 我们设法将图像拉到它们的实际位置。现在.git/fls 文件夹中的每个图像都有一个副本。我不明白为什么 git-lfs 以什么方式行事。

标签: git git-lfs


【解决方案1】:

为了让 Git LFS 正确检出系统上的文件,您需要安装 Git LFS 软件并至少运行一次git lfs install,或者正确配置过滤器。在某些系统上,比如 Debian(而且,我相信,当使用 Git for Windows 时),这已经为你配置好了,但除此之外,你需要运行该命令。

执行此操作后,进一步的签出和克隆操作将导致文件的行为与正常情况非常相似。如果您想修复工作目录中的现有文件,请尝试git lfs pull,这应该会导致这些文件被正确签出。

【讨论】:

    最近更新 更多