Làm thế nào để có được một bản cam kết cụ thể của một viên ngọc từ github?


155

Tôi đang sử dụng rails_admin và vì nó đang trong quá trình phát triển tích cực, nên các lỗi xuất hiện thường xuyên.

Không có phiên bản nào cho đá quý như tôi có thể nói, đối với đá quý trong github, vì vậy tôi không thể sử dụng :versionkhóa để khai báo đá quý trong Gemfile.

Có cách nào để tôi có thể "ràng buộc" một cam kết cụ thể (mà tôi biết là hoạt động tốt với tôi) với Gemfile không?

Tôi hiện đang có trong Gemfile của mình:

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

Tôi muốn có thể làm một cái gì đó như thế này (ví dụ "commit_id"):

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

Điều này có thể làm với github?

Câu trả lời:


271

Bất kỳ trong số này nên hoạt động:

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'

Nguồn: Cách cài đặt đá quý từ kho git


1
Đơn giản vì tất cả chúng (và .git/HEAD) đều là ref trong git :). Thêm: git-scm.com/book/en/v2/Git-Iternals-Git-References
medik

63

Một phiên bản ngắn hơn:

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

Hoặc, trong Ruby 1.9+

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

Và đặt nguồn mặc định của github thành https:git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end
Dorian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.