Gems from git repositories
gem list
.
They will, however, be available after running 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'
Security
http://
and git://
URLs are insecure, and should
be avoided if at all possible. These protocols are unauthenticated, so a
man-in-the-middle attacker can tamper with the code and compromise your system.
Note that the :github
shortcut translates to a git://
URL in pre-2.0 versions.
Local Git Repos
bundle config local.GEM_NAME /path/to/local/git/repository
bundle config local.rack ~/Work/git/rack
gem 'rack', :github => 'rack/rack', :branch => 'master'
Now instead of checking out the remote git repository, the local
override will be used. Similar to a path source, every time the local
git repository change, changes will be automatically picked up by
Bundler. This means a commit in the local git repo will update the
revision in the Gemfile.lock
to the local git repo revision. This
requires the same attention as git submodules. Before pushing to
the remote, you need to ensure the local override was pushed, otherwise
you may point to a commit that only exists in your local machine.
Bundler does many checks to ensure a developer won't work with
invalid references. Particularly, we force a developer to specify
a branch in the Gemfile
in order to use this feature. If the branch
specified in the Gemfile
and the current branch in the local git
repository do not match, Bundler will abort. This ensures that
a developer is always working against the correct branches, and prevents
accidental locking to a different branch.
Finally, Bundler also ensures that the current revision in the
Gemfile.lock
exists in the local git repository. By doing this, Bundler
forces you to fetch the latest changes in the remotes.
If you do not want bundler to make these branch checks, you can override it by setting this option:
bundle config disable_local_branch_check true