使用GIT LFS跟踪没有文件扩展名的大型二进制文件

时间:2016-02-11 00:40:27

标签: ios git github git-lfs

iOS框架内部是一个没有扩展名的二进制文件。我的二进制文件超过github的大小限制为100MB。

  • 我按照here
  • 指示设置了LFS
  • 我试图告诉LFS按名称跟踪我的二进制文件:git lfs track 'MyFramework'
  • 我试图告诉LFS按路径跟踪我的二进制文件:git lfs track 'path/to/MyFramework'
  • 无论如何都没有交易! Github服务器仍然通过告诉我文件太大来回复。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

发现这一点的人的一些注意事项:

  • 正如局外人所说,在将文件添加到GIT之前,你必须将文件添加到GIT LFS:git lfs track 'path/to/file
  • 如果文件已经在GIT中,则需要先将其删除。如果您以前已经将文件本地提交给GIT,那么您就有了合法的问题。您无法提交本地删除文件,因为远程仓库在删除之前首先需要拥有该文件。我通过使用列出的here命令将我的repo恢复到大文件存在之前的状态来解决这个问题。如果你不能这样做,你将不得不以其他方式解决这个问题。 GIT是无限灵活的,虽然不透明......
  • git lfs-ls-files确认LFS正在跟踪您的文件之前,您必须将该文件添加到实际的GIT:git add someFile
  • 我的GIT客户端(Gitbox)似乎不知道如何处理GIT LFS,所以我需要(至少第一次)添加,提交和推送(参见here)命令行。

答案 1 :(得分:2)

在git-lfs v1.1.1中,git lfs track 'path/MyFramework'之类的跟踪效果很好。您可以使用' ls-files'来检查git-lfs是否正确跟踪文件。

$ git lfs ls-files
828a9ca55c * path/MyFramework

如果git已经跟踪该文件,git-lfs不会跟踪它。我认为您必须删除跟踪MyFramework文件,然后添加git lfs track ..,然后再次提交。

答案 2 :(得分:0)

一段时间以来,我一直在寻找解决方案,每个答案都是使用git lfs track ..,这对于单个文件来说非常有用,但不能处理正在添加的新文件。

将其添加到.gitattributes文件中有助于查找仓库中没有扩展名的所有内容:

* filter=lfs diff=lfs merge=lfs -text # Include everything
/**/ -filter=lfs -diff=lfs -merge=lfs -text # Exclude directories
*.* -filter=lfs -diff=lfs -merge=lfs -text # Exclude anything with an extension
相关问题