使用提交的哈希值安装gem

时间:2019-12-22 14:31:50

标签: ruby-on-rails ruby github rubygems bundler

我真的很简单Gemfile

source 'https://rubygems.org'                                                                                                                                                                                                                                                                                                                                                                                                   
gem 'stripe-ruby-mock', 
  github: 'mnin/stripe-ruby-mock', 
  require: 'stripe_mock', 
  ref: 'b6446fb5ae2b14b6703554cbea4ebd466e4f3c47'

当我运行bundle命令安装此gem时,出现此错误:

root@6bcff6bf3997:/app# bundle
The git source `git://github.com/mnin/stripe-ruby-mock.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
Fetching git://github.com/mnin/stripe-ruby-mock.git
fatal: Could not parse object 'b6446fb5ae2b14b6703554cbea4ebd466e4f3c47'.
Revision b6446fb5ae2b14b6703554cbea4ebd466e4f3c47 does not exist in the repository git://github.com/mnin/stripe-ruby-mock.git. Maybe you misspelled it?

但是我可以使用此链接https://github.com/mnin/stripe-ruby-mock/commit/b6446fb5ae2b14b6703554cbea4ebd466e4f3c47访问Github上的提交页面。

那么我该如何使用该提交的哈希值作为gem?

2 个答案:

答案 0 :(得分:1)

无法从任何分支或标签到达该提交。因此,当您从GitHub克隆存储库时(Bundler在后台进行复制),您的本地副本将没有该提交。

因此,您将无法使用它。

在GitHub上,您可以看到无法提交此提交,因为它没有列出包含该提交的任何分支或标签:

enter image description here

将其与父提交(列出为可从主提交访问)进行比较:

enter image description here

请注意,孤立的提交最终将被Git收集到垃圾。 GitHub不会这样做,因为可能会引用特定的提交。

答案 1 :(得分:0)

如果可能,尽量不要使用叉形宝石。但是,如果您需要锁定一个分叉的版本,请确保您拥有该叉子。分叉分支的分支,将其合并到您自己的仓库的主分支,然后在您的gemfile中使用该仓库。