哪个提交是创建自 ruby​​gems 的特定版本?

Which commit was a specific release on rubygems created from?

我正在尝试创建发布历史记录,如何确定 gem 的特定版本是从 rubygems.com 上创建的?当我提取 *.gem 存档时,它不包含任何提交记录。

编辑:版本被推送到 rubygems 而没有用相关标签更新 github 仓库,我想用适当的版本回填 github标签。

通常rubygems.org

的gem页上的源代码会有一个link

从那里您应该被带到存储库,例如,如果您访问 https://rubygems.org/gems/devise,您将在页面右侧看到 link,上面写着 Source Code,应该 link到

https://github.com/plataformatec/devise/

然后您只需单击存储库顶部的 releases 或转到 https://github.com/plataformatec/devise/releases

在那里你会看到构建版本的提交。

如果您只是从 rubygems.org 下载 .gem 文件,它将只包含 gem 代码本身,而不包含任何 git 历史记录。如果你想要完整的 git 历史,你应该将 repo 克隆到你的本地机器上。为此,请单击存储库主页顶部的 Clone or download 按钮。如果您从那里复制 url,只需转到您的终端并输入

git clone <paste repo url here>

简单的回答:你不能!

Rubygem 上的 gem 版本和 Git 中的提交或标记是两个完全不同的概念,没有任何共同点。

您已经发现 gem 不包含任何关于使用 git 或特定提交的信息。如果您考虑一下,gems 不包含有关所使用的版本控制系统的信息是有道理的:

  • 不需要同时使用Rubygem和Git。实际上,构建 gems.
  • 时根本不需要使用版本控制系统
  • 即使作者使用了版本控制系统,也有其他版本控制系统——例如 SVN 或 Mercurial。
  • 即使作者使用 Git 来跟踪他们的源代码更改,他们仍然可以创建和上传 gem 的多个不同版本,而无需执行单个 git 提交与此同时。
  • 即使作者为每个 gem 版本提交了一个提交——取决于 gem 和 git 存储库的配置——两个系统都可以包含存在的文件在一个系统上但不在另一个系统上。

也就是说,特定 gem 版本对应特定 git 提交的假设是错误的。