【问题标题】:What's the difference between tag and release?标签和发布有什么区别?
【发布时间】:2023-03-13 11:46:01
【问题描述】:

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

它们有什么区别?

【问题讨论】:

    标签: git github github-api


    【解决方案1】:

    它们有什么区别?

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

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

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

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

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

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

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

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

    6 个版本(截至今天)

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

    创建一个版本当前在一个涉及手动操作的过程中(添加发行说明,上传包,...)。这就解释了为什么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 下。我觉得这不必要地令人困惑。
    猜你喜欢
    • 2011-08-13
    • 2011-01-05
    • 2010-12-28
    • 2012-08-15
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2011-09-12
    相关资源
    最近更新 更多