从github项目分发二进制文件的最佳实践是什么?

时间:2012-04-27 07:18:09

标签: github binary distribute

从github项目分发二进制文件的最佳做法是什么?

我能想到:

  • 在项目中创建一个bin文件夹,您可以在其中保存二进制文件的副本。 但是,github用于存储源代码而不是二进制文件存储大和 定期更改二进制文件可能是昂贵的磁盘空间和带宽吗?
  • 将二进制文件的副本上传到该文件的github pages 项目,或使用单独的网站托管您的二进制文件。 然而,这并不总是可行的,并且需要更多(手)工作来保持 二进制文件是最新的,我宁愿让二进制文件自动更新或使用 单一行动。

3 个答案:

答案 0 :(得分:60)

截至2012年12月11日Downloads feature on GitHub is deprecated。文章Distributing large binaries建议使用外部服务:

  

我们建议将Amazon S3用于与CloudFront配对的存储空间进行投放   通过CDN或其他服务,例如SourceForge


但是,since 2d July 2013,您现在可以定义发布

  

发布,这是向最终用户发送软件的工作流程   版本是具有更改日志和二进制资产的一流对象,它们提供了超出Git工件的完整项目历史记录。可以从存储库的主页访问它们:

homepage

  • 发布时附有发行说明和下载软件或源代码的链接。
  • 遵循许多Git项目的惯例,版本与Git标签相关联。您可以使用现有标记,也可以在发布标记时创建标记。
  • 您还可以将二进制资产(例如已编译的可执行文件,缩小的脚本,文档)附加到发布。发布后,任何可以查看存储库的人都可以使用发布详细信息和资产。

release

答案 1 :(得分:18)

现在我很清楚,在您的github项目中存储二进制文件非常重要 。因此,您需要在其他地方存储二进制文件。我遇到的可能解决方案是:

  • 将二进制文件存储在单独的子模块(dalores idea)中。将它们存储在您用于通过github托管项目网站的项目github pages中是有意义的。
  • 如果您只有几个二进制文件或zip文件,可以通过下载将其上传到github - >上传新文件。此功能非常有限,但您无法将文件放在结构化文件夹中。
  • 对于java jar文件,有像Nexus这样的解决方案来管理你的库。
  • 将二进制文件存储在您自己托管的完全独立的网站上

答案 2 :(得分:2)

什么样的二进制文件?二进制文件必须在某个时候来源吗?

所以添加构建这些二进制文件的源代码作为git中的子模块。然后在构建过程中,首先构建这些二进制文件,然后再构建源代码。子模块与您知道可用的源的特定版本保持同步。由于您拥有源代码,因此您还可以更轻松地进行调试。

除非二进制文件是图像等,否则只需存储它们。

如果空间有问题,请使用bitbucket,因为它们有无限的空间。