21

我有一个(目前)120 MB 的大文本数据文件。

将它放在回购中是一种不好的做法吗?它会影响 GitHub 上的搜索功能吗?

这似乎是个坏主意,因为整个源代码只有 900 行。

不打算更新文件。

可以将它放在 Dropbox 或 Google Docs 上,但它与 repo 是分开的。

如果不是 GitHub,是否有更好的方法来管理/备份大型数据文件?

4

5 回答 5

5

如果满足以下条件,请将其放入 repo:
1-您想要跟踪更改
2-它实际上是项目的一部分,并且您希望人们在克隆 repo 时收到它

如果出现以下情况,请勿将其放入存储库(使用 .gitignore 排除):
1- 它经常更改,但更改没有意义,并且您不想保留历史记录
2- 它可以在线获得,或者您可以制作它在线提供并在回购中放置链接或其他内容,以便人们知道在哪里可以找到它

如果您没有很多人下载 Dropbox,它是不错的选择,Amazon S3 是您托管它的最佳选择。

于 2012-10-29T02:13:36.637 回答
5

有很好的方法来处理这种情况。例如,当我在一个分析数据的项目上工作时,尤其是在清理和预处理步骤之后,共享代码而不是数据集(当然出于数据集大小的原因)是蹩脚的。这是我发现的:

  • git lfs 大文件存储,这允许您跟踪和提交二进制文件、数据文件、图像等并将其推送到同一个远程,如果您克隆存储库,您不必提取所有内容。

  • git-annex使用自己的命令,因此您将分别提交 repo 和附件文件。它看起来非常适合在任何远程设备上管理这些文件,例如硬盘驱动器、s3、谷歌驱动器等等。

有人在这里对 git-annex 与 git lfs 做了一个很好的比较这篇文章比较了几种简短的方法。

它们看起来都很棒,git附件目前更成熟,但是git lfs是由我使用的github开发的,这就是我使用git lfs的原因。

于 2016-08-27T17:48:02.390 回答
3

您可以将它放在 github 上,但我建议将它放在另一个存储库中并通过子模块链接到它。这将确保文件不会被传输/调整,除非您通过子模块命令明确这样做。

于 2012-10-29T02:12:21.140 回答
2

如果文件不需要受版本控制,那么我不愿意将它放在 git hub 上。

根据讨论更新...

来自http://git-scm.com/book/en/Customizing-Git-Git-Hooks

成功运行 git checkout 后,将运行 post-checkout 挂钩;您可以使用它为您的项目环境正确设置工作目录。这可能意味着移动不需要源代码控制的大型二进制文件、自动生成文档或类似的东西。

因此,使用这种机制,您可以将外部存储的数据文件下载到您的工作副本中。

于 2012-10-29T02:07:35.207 回答
2

pages.github.com 是正确的地方吗?不

github:help 非常清楚地回答了这个问题(我也在找他们)

https://help.github.com/articles/what-is-my-disk-quota

大型媒体文件

二进制媒体文件与 Git 不能很好地相处。对于这些文件,通常最好使用专为您正在使用的内容设计的服务。

对于视频和音乐等大型媒体文件,您应该自己托管文件或使用 Vimeo 或 Youtube 等服务。

对于像 PSD 和 3D 模型这样的设计文件,像 Dropbox 这样的服务通常工作得很好。这就是 GitHub 的设计者用来保持同步的方法;只有最终的图像资产被提交到我们的存储库中。

https://help.github.com//articles/distributing-large-binaries

于 2013-01-10T05:27:16.917 回答