我在尝试使用 git LFS 时遇到了麻烦,尽管这里有很多关于 SO、Git 和 GitHub 文档以及我遇到的一些要点的建议。
我的问题如下:
执行必要的步骤后:
git lfs install
git lfs track "<file of interest>"
git commit
我仍然没有任何文件被跟踪。如果我表演的话
git lfs ls-files
它将是空白的。如果我继续执行推送,事务将会失败,并提示文件太大。 (正如所料,但我很绝望。)
最初的解决方案是从 2016 年开始的。技术进步...
看来现在最好的解决方案是
git lfs migrate
感谢@iff_or提醒我这一点(见评论)。
然后我发现了一些修复,其中一些似乎是错误,其中一些对我来说并不明显。
似乎为了将
lfs
与现有存储库一起使用,需要黑客或第三方工具,例如BFG的转换器。
git init
等。
git remote add origin [email protected]:<my_id>/<my_repo>.git
此外,虽然Git 的培训视频声称您可以简单地指定一个文件夹,例如
"my_folder/"
,但我无法让它工作。因此,我只是巧妙地使用文件扩展名来管理事物。
git lfs track "my_folder/"
对我不起作用,但git lfs track "*.zip"
确实有效。我没能正确识别 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 工作了,所以我想我会把这些细节传递给其他人,以防其他人遇到同样的问题。
要将文件放在 lfs 上的现有存储库上,您还可以执行以下操作:
git lfs migrate import --include="*.mp3,*.pth"
(将
.mp3
和 .pth
替换为您想要放在 lfs 上的文件扩展名)
要通过LFS跟踪
my_folder
的所有文件和子目录,你可以这样做:
git lfs track "my_folder/**"
它对我有用。
目前无法执行以下操作来跟踪整个
my_folder
目录:
git lfs track "my_folder/"
不工作
正如@Ravin Sardal 的评论中所建议的,解决这个问题我所要做的就是运行
git lfs install
在存储库的基本目录中设置大文件支持。之后
git lfs track "<file of interest>"
按预期工作,并且确实
git lfs ls-files
在提交之前列出了跟踪的文件。