5

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

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

有任何想法吗?

4

3 回答 3

3

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

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

在 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 ..,然后再次提交。

于 2016-02-11T09:36:07.713 回答
0

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

将其添加到 .gitattributes 文件中可以找到在 Repo 中没有扩展名的所有内容:

* 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
于 2019-05-30T23:06:58.673 回答