gem list
에서는 보이지 않을 것입니다. 하지만
Bundler.setup
을 실행하면 사용 가능합니다.
gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git'
gem 'deep_merge', '1.0', :git => 'https://github.com/peritor/deep_merge.git'
git 'https://github.com/rails/rails.git' do gem 'railties' gem 'action_pack' gem 'active_model' end
:git => 'https://github.com/rails/rails.git', :ref => '4aded' :git => 'https://github.com/rails/rails.git', :branch => '2-3-stable' :git => 'https://github.com/rails/rails.git', :tag => 'v2.3.5'
gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git', :ref => '0eec4'
gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git' gem 'nokogiri', :git => 'git@github.com:tenderlove/nokogiri.git' gem 'nokogiri', :git => 'git://github.com/tenderlove/nokogiri.git'
gem 'nokogiri', :github => 'tenderlove/nokogiri'
gem 'rails', :github => 'rails'
gem 'rails', :git => 'https://github.com/rails/rails'
gem 'rails', :github => 'rails', :ref => 'a9752dcfd15bcddfe7b6f7126f3a6e0ba5927c56'
http://
와 git://
URL은 안전하지 않습니다. 가능하다면
전혀 사용하지 않는 것이 좋습니다. 이 프로토콜은 인증을 하지 않아, 중계 공격자
(man-in-the-middle attacker)가 코드를 변조하거나 시스템을 손상 시킬 수 있습니다.
:github
단축은 2.0 이전 버전에서는 git://
URL로
변환되는 것에 주의하세요.
bundle config local.GEM_NAME /path/to/local/git/repository
bundle config local.rack ~/Work/git/rack
gem 'rack', :github => 'rack/rack', :branch => 'master'
이제 리모트 git 저장소를 체크아웃하는 대신에 로컬 오버라이드가
사용됩니다. 경로(path) 소스와 비슷하게 git 저장소가 변경될 때마다
변경사항이 번들러에 의해 자동으로 반영됩니다. 이 말은 로컬 git
저장소에 커밋이 추가되면 Gemfile.lock
안의 리비전이 갱신
된다는 뜻입니다. 이렇게 하면 git 서브모듈을 사용하는 것과 같은
주의가 필요합니다. 리모트에 푸시하기 전에 로컬 오버라이드가
푸시되었는지 확인해야 합니다. 그렇지 않다면 로컬 기기에만 있는
커밋을 지정하게 됩니다.
번들러는 개발자가 유효하지 않은 참조를 사용하지 않도록 많은 검사를
수행합니다. 특히 이 기능을 사용할 때는 Gemfile
에 브랜치를
지정하도록 강제합니다. Gemfile
에 적혀있는 브랜치와
로컬 git 저장소의 현재 브랜치가 다르다면 번들러는 중단됩니다.
언제나 올바른 브랜치에서 작업하는지 확인하고 다른 브랜치를 사용할 때
발생할 수 있는 사고를 예방할 수 있습니다.
마지막으로 번들러는 Gemfile.lock
안의 현재 리비전이
로컬 git 저장소에도 있는지 확인합니다. 이렇게 함으로써 번들러는
리모트의 최신 변경 사항을 가져오도록 강제 할 수 있습니다.
번들러가 브랜치를 확인하길 원치 않는다면 이 옵션을 오버라이드 하세요.
bundle config disable_local_branch_check true