Git lfs(大型文件存储)表示 lfs 管理的文件在 git lfs 拉取后被修改

Git lfs (Large File Storage) says lfs managed files are modified after a git lfs pull

我有一个存储库的工作副本,它使用 git-lfs 来存储一些大文件。我安装了 git-lfs 二进制文件,但工作副本中可能没有 运行 "git lfs install"。当我想在添加 lfs 文件后更新我的本地工作副本时,我执行这些命令:

git pull
git lfs pull

只要添加 lfs 文件就可以正常工作。然后存储库有一些 lfs 文件被修改,当我 运行 git pull 我收到错误消息:

Your local changes to the following files would be overwritten by merge
....
....

它列出了所有要通过拉取修改的 lfs 文件。

从那时起,我在工作副本中 运行 git lfs install 并且工作正常,但是 git status 仍然列出所有这些文件作为被修改并且 git pull 给出我也是同样的错误。

我的问题基本上是,如果我使用 lfs,更新工作副本的正确步骤是什么?我该如何清理这种棘手的情况?

事实证明,工作副本中的 运行ning git lfs install 是解决方案的一半。下半部分是 运行 git reset 在工作副本里面:

  • 将大文件留在原地
  • 让 git 知道它们实际上并不脏而且很好

现在看来我不再需要显式执行 git lfs pull 来获取最新的大文件。第一个 git pull 工作正常。

对我来说,在 git 克隆之前,我先 git lfs install 然后 git clone。一切都解决了!我认为这个问题非常重要而且很常见,有很多 GitHub 的讨论都没有给出真正的解决方案(至少一眼看不到)!谢谢你的回答 greggles.

在使用 Windows(git 版本 2.31.1 和 git-lfs/2.13.3)和 [=37 时,我遇到了具有大写文件扩展名的文件几乎相同的问题=](git 版本 2.25.1 & git-lfs/2.9.2)。

我的 .gitattributes 包含小写 *.jpg*.jpg filter=lfs diff=lfs merge=lfs -text 并且我在 Windows 下提交了文件扩展名为 test.JPG 的大写文件。在 Linux 系统上克隆存储库后,具有大写扩展名 (.JPG) 的图像仅保留引用,而具有小写文件扩展名 (.jpg) 的图像被克隆不出所料。
在 Linux 系统上执行 git lfs pull 后,图像在文件系统上的位置正确,但现在它们显示为 Modified.

解决方案 是通过 运行:
配置 Git 忽略 Linux 上的大小写 git config --global core.ignorecase true