GitHubから宝石の特定の「コミット」を取得するにはどうすればよいですか?


155

私はrails_adminを使用していますが、(非常に)アクティブな開発中であるため、バグが時々発生します。

私が知る限り、githubのgemには、gemのバージョンがないため:version、Gemfileの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で可能ですか?

回答:


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リポジトリからGemをインストールする方法


1
単にそれらすべて(および.git/HEAD)がgitの参照であるためです:)。詳細:git-scm.com/book/en/v2/Git-Internals-Git-References
メディック

63

短いバージョン:

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

または、Ruby 1.9以降

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

そして、それをhttpsにgithubのデフォルトのソースを設定:git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end
ドリアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.