如何从 github 获取 gem 的特定“提交”?
Posted
技术标签:
【中文标题】如何从 github 获取 gem 的特定“提交”?【英文标题】:How to get a specific "commit" of a gem from github? 【发布时间】:2011-09-01 11:22:12 【问题描述】:我正在使用rails_admin,由于它处于(非常)活跃的开发阶段,因此时不时会出现错误。
据我所知,对于 github 中的 gem,没有 gem 的版本,所以我不能在 Gemfile 中使用 :version
键来声明 gem。
有没有办法可以将特定的提交(我知道这对我工作正常)“绑定”到 Gemfile?
我目前在我的 Gemfile 中有:
gem 'rails_admin',
:git => 'git://github.com/sferik/rails_admin.git'
我希望能够做这样的事情(例如“commit_id”):
gem 'rails_admin',
:git => 'git://github.com/sferik/rails_admin.git',
:commit_id => "4e7d53e3c5c4c3c5c43c3"
这可能与github有关吗?
【问题讨论】:
【参考方案1】:其中任何一个都应该有效:
gem 'rails', :git => 'git://github.com/rails/rails.git', :ref => '4aded'
gem 'rails', :git => 'git://github.com/rails/rails.git', :branch => '2-3-stable'
gem 'rails', :git => 'git://github.com/rails/rails.git', :tag => 'v2.3.5'
来源:How to install gems from git repositories
【讨论】:
仅仅是因为它们(和.git/HEAD
)都是 git 中的引用 :)。更多:git-scm.com/book/en/v2/Git-Internals-Git-References【参考方案2】:
更短的版本:
gem 'rails', :github => 'rails/rails', :ref => '4aded'
或者,在 Ruby 1.9+ 中
gem 'rails', github: 'rails/rails', ref: '4aded'
【讨论】:
并将 github 默认源设置为 https:git_source(:github) do |repo_name| repo_name = "#repo_name/#repo_name" unless repo_name.include?("/") "https://github.com/#repo_name.git" end
以上是关于如何从 github 获取 gem 的特定“提交”?的主要内容,如果未能解决你的问题,请参考以下文章