172

I'm using rails_admin, and since it is in (very) active development, bugs turn up every now and then.

There are no versions for the gem as far as I can tell, for the gem in github, so I can't use the :version key for the gem declaration in the Gemfile .

Is there a way I can "tie" a specific commit(that I know is working fine for me) to the Gemfile ?

I currently have in my Gemfile:

gem 'rails_admin', 
  :git => 'git://github.com/sferik/rails_admin.git'

I'd like to be able to do something like this (example "commit_id"):

gem 'rails_admin', 
  :git => 'git://github.com/sferik/rails_admin.git',
  :commit_id => "4e7d53e3c5c4c3c5c43c3"

Is this possible to do with github?

Zabba
  • 64,285
  • 47
  • 179
  • 207

2 Answers2

301

Any of these should work:

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'

Source: How to install gems from git repositories

jeffmcc
  • 263
  • 3
  • 9
dexter
  • 13,365
  • 5
  • 39
  • 56
  • 1
    Simply because all of them (and `.git/HEAD`) are refs in git :). More: https://git-scm.com/book/en/v2/Git-Internals-Git-References – medik May 09 '17 at 12:04
77

A shorter version:

gem 'rails', :github => 'rails/rails', :ref => '4aded'

Or, in Ruby 1.9+

gem 'rails', github: 'rails/rails', ref: '4aded'
Eric L.
  • 1,064
  • 8
  • 7
  • And setting the github default source to https with that: `git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end` – Dorian Jan 16 '17 at 23:46