Как получить конкретный «коммит» драгоценного камня из github?

155

Я использую rails_admin , и поскольку он находится в (очень) активной разработке, ошибки время от времени появляются.

Насколько я могу судить, для gem в github не существует версий, поэтому я не могу использовать :versionключ для объявления gem в Gemfile.

Есть ли способ, которым я могу "привязать" определенный коммит (который, как я знаю, работает нормально для меня) к 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?

Zabba
источник

Ответы:

271

Любой из них должен работать:

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'

Источник: Как установить гем из репозиториев git

правый
источник
1
Просто потому, что все они (и .git/HEAD) являются ссылками в git :). Подробнее: git-scm.com/book/en/v2/Git-Internals-Git-References
medik
63

Более короткая версия:

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
Дориан