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

Git LFS refused to track my large files properly, until I did the following

问题

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

我的问题如下:

执行必要的步骤后:

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

我仍然不会跟踪任何文件。如果我执行

git lfs ls-files

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

我的(原创海报)"Solution"

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

  1. 似乎要将 lfs 现有存储库 一起使用,需要黑客工具或第三方工具,例如 BFG's converter需要。

    • 我不想走那条路,所以我只是 在本地初始化了一个新的存储库 ,然后挑战将它连接回真实的存储库。
    • 我创建了一个新目录,然后git init,等等。
      • 在我的例子中,远程存储库是 GitHub。所以我做了所有这些适当的连接,比如 git remote add origin git@github.com:<my_id>/<my_repo>.git
  2. 此外,虽然 Git's Training Video 声称您可以简单地 指定一个文件夹 ,例如 "my_folder/",但我无法得到这个上班。因此,我只是巧妙地使用文件扩展名来管理东西。

    • 例如,git lfs track "my_folder/" 对我无效,但 git lfs track "*.zip" 有效。
  3. 除非我 首先更新 .gitattributes 文件,然后提交并将该新文件推送到远程服务器,否则我无法正确识别 LFS 文件.

    • 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 工作了,所以我想我会把这些细节传递给其他人,以防其他人遇到同样的问题。

要通过 LFS 跟踪 my_folder 的所有文件和子目录,您可以这样做:

git lfs track "my_folder/**"

对我有用。

到目前为止,执行以下操作无法跟踪整个 my_folder 目录:

git lfs track "my_folder/" 

不工作

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

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

正如@Ravin Sardal 在评论中所建议的那样,我所要做的就是 运行

来解决这个问题
git lfs install

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

git lfs track "<file of interest>"

按预期工作,确实 git lfs ls-files 在提交之前列出了跟踪的文件。