标签和发布有啥区别?

Posted

技术标签:

【中文标题】标签和发布有啥区别?【英文标题】:What's the difference between tag and release?标签和发布有什么区别? 【发布时间】:2013-09-01 14:59:59 【问题描述】:

使用 GitHub 的 API,我无法获取发布列表,但我可以获取标签列表。

它们有什么区别?

【问题讨论】:

【参考方案1】:

它们有什么区别?

tag 是指向特定提交的指针。这个指针可以附加一些额外的信息(标签创建者的身份、描述、GPG签名......)。

tag 是一个 git 概念,而 Release 是 GitHub 更高级别的概念。

正如 GitHub 博客的 official announcement 帖子中所述:“发布是一流的对象,具有变更日志和二进制资产,呈现了 Git 工件之外的完整项目历史。”

Release 是从现有的 tag 创建的,并公开发布说明和从 GitHub 下载软件或源代码的链接。

使用 GitHub 的 API,我无法获取发布列表,但我可以获取标签列表。

GitHub API 的当前版本没有公开管理Releases 的方法(创建、更新...)。我很确定这应该不会花太长时间才能暴露出来。

但是,目前可以列出特定存储库的版本和标签。

例如,下面的网址将列出来自 ReactiveUI

6 个版本(截至今天) https://api.github.com/repos/reactiveui/ReactiveUI/releases

而这个将列出来自同一存储库的 54 个标签(截至今天)

https://api.github.com/repos/reactiveui/ReactiveUI/tags

创建一个版本当前在一个涉及手动操作的过程中(添加发行说明,上传包,...)。这就解释了为什么tags 不透明地被视为Releases。


如果您想在 API 更改时收到通知,可以订阅 the GitHub API Changes blog

但是,如果您迫不及待,GitHub API 主页会声明“如果您有任何问题或请求,请联系支持人员。”。这可以通过发送电子邮件至 support@github.com 或发送至 contact form 来完成。

更新:

GitHub API 现在允许操作 Releases。请参阅 announcement

【讨论】:

非常感谢您的详细回答。回复:/releases - 我得到0 releases for rails,这有点奇怪,不是吗? 我不认为这很奇怪。这仅意味着 Rails 团队没有使用 GitHub UI 从现有的tag 创建ReleaseReleases 是最近添加的。也许 Rails 团队更愿意坚持他们当前的流程,并在新版本发布时发布到他们的博客(参见 3.2.14 announcement)。 +1 用于明确区分标签和发布以​​及各自的用途:“taggit 概念,而 ReleaseGitHub 更高级别的概念...Release 是从现有的 tag 创建的,并公开发布说明和链接以从 GitHub 下载软件或源代码。” 可能还值得知道现在有一个名为hub 的命令行工具可以增强 git 的功能。在这些超能力中,还有终端推送的能力。 似乎在您在 GitHub 中创建第一个版本之前,您的所有标签都显示在 Releases 下。我觉得这不必要地令人困惑。

以上是关于标签和发布有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

特征和标签有啥区别? [关闭]

脚本标签和“<%....%>”标签有啥区别?

Struts 标签中的 # 、 % 和 $ 符号有啥区别?

将javascript放入文件和脚本标签有啥区别?

在标签和输入上使用 id 标签有啥区别? [复制]

脚本标签中的“lang”和“type”属性有啥区别?