问题
尽管在 SO、Git 和 GitHub 的文档以及我遇到的一些 Gists 上有很多建议,但我在尝试使用git LFS时遇到了麻烦。
我的问题如下:
执行必要步骤后:
git lfs install
git lfs track "<file of interest>"
git commit
我仍然不会跟踪任何文件。如果我表演
git lfs ls-files
它将是空白的。如果我继续执行推送,事务将失败,说文件太大。(不出所料,但我很绝望。)
尽管在 SO、Git 和 GitHub 的文档以及我遇到的一些 Gists 上有很多建议,但我在尝试使用git LFS时遇到了麻烦。
我的问题如下:
执行必要步骤后:
git lfs install
git lfs track "<file of interest>"
git commit
我仍然不会跟踪任何文件。如果我表演
git lfs ls-files
它将是空白的。如果我继续执行推送,事务将失败,说文件太大。(不出所料,但我很绝望。)
然后我发现了一些修复,其中一些似乎是错误,其中一些对我来说根本不明显。
似乎为了lfs
与现有存储库一起使用,需要一个 hack 或第三方工具,例如BFG 的转换器。
git init
等。
git remote add origin git@github.com:<my_id>/<my_repo>.git
此外,虽然Git 的培训视频声称您可以简单地指定一个文件夹,例如"my_folder/"
,但我无法让它工作。因此,我只是巧妙地使用文件扩展名来管理事情。
git lfs track "my_folder/"
对我不起作用,但git lfs track "*.zip"
确实有效。除非我首先更新了.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 上的现有 repo 上,您还可以执行以下操作:
git lfs migrate import --include="*.mp3,*.pth"
正如@Ravin Sardal 的评论中所建议的那样,我所要做的就是解决这个问题
git lfs install
在存储库的基本目录中设置大文件支持。在那之后
git lfs track "<file of interest>"
按预期工作,并且确实git lfs ls-files
在提交之前列出了跟踪的文件。