标签和发布有啥区别?
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 的当前版本没有公开管理Release
s 的方法(创建、更新...)。我很确定这应该不会花太长时间才能暴露出来。
但是,目前可以列出特定存储库的版本和标签。
例如,下面的网址将列出来自 ReactiveUI
的 6 个版本(截至今天) https://api.github.com/repos/reactiveui/ReactiveUI/releases而这个将列出来自同一存储库的 54 个标签(截至今天)
https://api.github.com/repos/reactiveui/ReactiveUI/tags创建一个版本当前在一个涉及手动操作的过程中(添加发行说明,上传包,...)。这就解释了为什么tag
s 不透明地被视为Release
s。
如果您想在 API 更改时收到通知,可以订阅 the GitHub API Changes blog。
但是,如果您迫不及待,GitHub API 主页会声明“如果您有任何问题或请求,请联系支持人员。”。这可以通过发送电子邮件至 support@github.com 或发送至 contact form 来完成。
更新:
GitHub API 现在允许操作 Release
s。请参阅 announcement。
【讨论】:
非常感谢您的详细回答。回复:/releases - 我得到0 releases for rails,这有点奇怪,不是吗? 我不认为这很奇怪。这仅意味着 Rails 团队没有使用 GitHub UI 从现有的tag
创建Release
。 Release
s 是最近添加的。也许 Rails 团队更愿意坚持他们当前的流程,并在新版本发布时发布到他们的博客(参见 3.2.14 announcement)。
+1 用于明确区分标签和发布以及各自的用途:“tag
是 git 概念,而 Release
是 GitHub 更高级别的概念...Release
是从现有的 tag
创建的,并公开发布说明和链接以从 GitHub 下载软件或源代码。”
可能还值得知道现在有一个名为hub 的命令行工具可以增强 git 的功能。在这些超能力中,还有终端推送的能力。
似乎在您在 GitHub 中创建第一个版本之前,您的所有标签都显示在 Releases 下。我觉得这不必要地令人困惑。以上是关于标签和发布有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章