25

问题

尽管在 SO、Git 和 GitHub 的文档以及我遇到的一些 Gists 上有很多建议,但我在尝试使用git LFS时遇到了麻烦。

我的问题如下:

执行必要步骤后:

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

我仍然不会跟踪任何文件。如果我表演

git lfs ls-files

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

4

4 回答 4

27

我的(原始海报)“解决方案”

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

  1. 似乎为了lfs现有存储库一起使用,需要一个 hack 或第三方工具,例如BFG 的转换器

    • 我不想走那条路,所以我只是在本地初始化了一个新的存储库,然后挑战将它连接到真正的存储库。
    • 我创建了一个新目录,然后git init等。
      • 就我而言,远程存储库是 GitHub。所以我做了所有这些适当的连接,比如git remote add origin git@github.com:<my_id>/<my_repo>.git
  2. 此外,虽然Git 的培训视频声称您可以简单地指定一个文件夹,例如"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 工作了,所以我想我会把这些细节传递给其他人,以防其他人遇到同样的问题。

于 2016-02-20T03:15:19.507 回答
11

要通过 LFS 跟踪所有文件和子目录my_folder,您可以执行以下操作:

git lfs track "my_folder/**"

它对我有用。

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

git lfs track "my_folder/" 

不管用

于 2017-06-08T06:23:12.653 回答
8

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

git lfs migrate import --include="*.mp3,*.pth"
于 2020-12-09T14:16:25.450 回答
0

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

git lfs install

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

git lfs track "<file of interest>"

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

于 2021-11-10T08:52:11.123 回答