【问题标题】:Git lfs (Large File Storage) says lfs managed files are modified after a git lfs pullGit lfs (Large File Storage) 说 lfs 托管文件在 git lfs pull 后被修改
【发布时间】:2016-01-08 20:40:09
【问题描述】:

我有一个使用 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,更新我的工作副本的正确步骤是什么?我该如何清理这种棘手的情况?

【问题讨论】:

    标签: git github git-lfs


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      对我来说,在我 git clone 之前,我先做git lfs install,然后再做git clone。一切都解决了!我认为这个问题非常重要并且很常见,有大量的 GitHub 讨论没有显示真正的解决方案(至少一眼看不到)!谢谢你的回答。

      【讨论】:

      • 如果您还没有完成 git clone,那么这似乎是一个不错的解决方案。我的情况是已经完成了 git clone 并且需要拉入 lfs 管理的文件。
      【解决方案3】:

      在使用 Windows(git 版本 2.31.1 和 git-lfs/2.13.3)和 Linux(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

      【讨论】:

        猜你喜欢
        • 2022-06-14
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多