Git LFS 拒绝正确跟踪我的大文件,直到我执行以下操作

问题描述 投票:0回答:5

问题

我在尝试使用 git LFS 时遇到了麻烦,尽管这里有很多关于 SO、Git 和 GitHub 文档以及我遇到的一些要点的建议。

我的问题如下:

执行必要的步骤后:

git lfs install
git lfs track "<file of interest>"
git commit

我仍然没有任何文件被跟踪。如果我表演的话

git lfs ls-files

它将是空白的。如果我继续执行推送,事务将会失败,并提示文件太大。 (正如所料,但我很绝望。)

git github git-lfs
5个回答
35
投票

新解决方案

最初的解决方案是从 2016 年开始的。技术进步...

看来现在最好的解决方案是

git lfs migrate

感谢@iff_or提醒我这一点(见评论)。

过时的解决方案,请勿使用

然后我发现了一些修复,其中一些似乎是错误,其中一些对我来说并不明显。

  1. 似乎为了将

    lfs
    现有存储库一起使用,需要黑客或第三方工具,例如BFG的转换器

    • 我不想走这条路,所以我只是在本地初始化了一个新的存储库,然后完成了将其连接回真实存储库的挑战。
    • 我创建了一个新目录,然后
      git init
      等。
      • 就我而言,远程存储库是 GitHub。所以我做了所有这些正确的连接,比如
        git remote add origin [email protected]:<my_id>/<my_repo>.git
  2. 此外,虽然Git 的培训视频声称您可以简单地指定一个文件夹,例如

    "my_folder/"
    ,但我无法让它工作。因此,我只是巧妙地使用文件扩展名来管理事物。

    • 例如,
      git lfs track "my_folder/"
      对我不起作用,但
      git lfs track "*.zip"
      确实有效。
  3. 我没能正确识别 LFS 文件,除非我首先更新了

    .gitattributes
    文件,然后提交并推送该新文件到远程服务器

    • git lfs track "*.zip"
    • git add .gitattributes
    • git commit -m "Updated the attributes"
    • git push
    • git add my_large_file.zip
    • git lfs ls-files
      • 在这里我将确保我看到
        my_large_file.zip
        被跟踪。
    • git commit -m "Now I am adding the large file"
    • git push

有可能有些事情是有效的,而我只是做错了。然而,按照上面描述的巫术终于让 LFS 工作了,所以我想我会把这些细节传递给其他人,以防其他人遇到同样的问题。


23
投票

要将文件放在 lfs 上的现有存储库上,您还可以执行以下操作:

git lfs migrate import --include="*.mp3,*.pth"

(将

.mp3
.pth
替换为您想要放在 lfs 上的文件扩展名)


13
投票

要通过LFS跟踪

my_folder
的所有文件和子目录,你可以这样做:

git lfs track "my_folder/**"

它对我有用。

目前无法执行以下操作来跟踪整个

my_folder
目录:

git lfs track "my_folder/" 

不工作


2
投票

正如@Ravin Sardal 的评论中所建议的,解决这个问题我所要做的就是运行

git lfs install

在存储库的基本目录中设置大文件支持。之后

git lfs track "<file of interest>"

按预期工作,并且确实

git lfs ls-files
在提交之前列出了跟踪的文件。


0
投票
  1. 首先添加并提交.gitattributes
  2. 选中“在存储库设置/存档中包含 Git LFS 对象”复选框。
  3. 添加并提交大文件

来源

© www.soinside.com 2019 - 2024. All rights reserved.