summaryrefslogtreecommitdiff
path: root/v1.3/git.html
diff options
context:
space:
mode:
Diffstat (limited to 'v1.3/git.html')
-rw-r--r--v1.3/git.html203
1 files changed, 0 insertions, 203 deletions
diff --git a/v1.3/git.html b/v1.3/git.html
deleted file mode 100644
index b7de7bc6df..0000000000
--- a/v1.3/git.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Bundler: The best way to manage a Ruby application's gems</title>
- <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
- <meta content='276VSYOko8B8vIu1i8i5qbj7_ql5PXo0dU69XQy-SL' name='globalsign-domain-verification'>
- <link href='/images/favicon.png' rel='shortcut icon' type='image/png'>
- <link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id='body'>
- <div id='header'>
- <a class="image" href="/"><img width="725" alt="The best way to manage your application's dependencies" src="/images/gembundler.png" /></a>
- </div>
- <div id='container'>
- <div id='contents'>
- <h2>Gems from git repositories</h2>
- <div class='contents'>
- <div class='bullet'>
- <div class='description'>
- Bundler adds the ability to use gems directly from git repositories. Setting
- them up is as easy as adding a gem to your Gemfile. Using the very latest
- version of a gem (or even a fork) is just as easy as using an official
- release.
- </div>
- <div class='description'>
- Because Rubygems lacks the ability to handle gems from git, any gems
- installed from a git repository will not show up in <code>gem list</code>.
- They will, however, be available after running <code>Bundler.setup</code>.
- </div>
- </div>
- <div class='bullet'>
- <div class='description'>
- Specify that a gem should come from a git
- repository with a .gemspec at its root
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'nokogiri'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/tenderlove/nokogiri.git'</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- If there is no .gemspec at the root of
- a git repository, you must specify a version
- that bundler should use when resolving
- dependencies
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'deep_merge'</span><span class="p">,</span> <span class="s1">'1.0'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/peritor/deep_merge.git'</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- Specify that a git repository containing
- multiple .gemspec files should be treated
- as a gem source
- </div>
- <pre class="highlight ruby"><span class="n">git</span> <span class="s1">'https://github.com/rails/rails.git'</span> <span class="k">do</span>&#x000A; <span class="n">gem</span> <span class="s1">'railties'</span>&#x000A; <span class="n">gem</span> <span class="s1">'action_pack'</span>&#x000A; <span class="n">gem</span> <span class="s1">'active_model'</span>&#x000A;<span class="k">end</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- Specify that a git repository should use
- a particular ref, branch, or tag
- </div>
- <pre class="highlight ruby"><span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/rails/rails.git'</span><span class="p">,</span> <span class="ss">:ref</span> <span class="o">=&gt;</span> <span class="s1">'4aded'</span>&#x000A;<span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/rails/rails.git'</span><span class="p">,</span> <span class="ss">:branch</span> <span class="o">=&gt;</span> <span class="s1">'2-3-stable'</span>&#x000A;<span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/rails/rails.git'</span><span class="p">,</span> <span class="ss">:tag</span> <span class="o">=&gt;</span> <span class="s1">'v2.3.5'</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- Specifying a ref, branch, or tag for a
- git repository specified inline works
- exactly the same way
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'nokogiri'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/tenderlove/nokogiri.git'</span><span class="p">,</span> <span class="ss">:ref</span> <span class="o">=&gt;</span> <span class="s1">'0eec4'</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- Bundler can use HTTP(S), SSH, or git
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'nokogiri'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/tenderlove/nokogiri.git'</span>&#x000A;<span class="n">gem</span> <span class="s1">'nokogiri'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'git@github.com:tenderlove/nokogiri.git'</span>&#x000A;<span class="n">gem</span> <span class="s1">'nokogiri'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'git://github.com/tenderlove/nokogiri.git'</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- If you are getting your gems from a public GitHub repository,
- you can use the shorthand
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'nokogiri'</span><span class="p">,</span> <span class="ss">:github</span> <span class="o">=&gt;</span> <span class="s1">'tenderlove/nokogiri'</span></pre>
- <div class='description'>
- If the repository name is the same as the GitHub account hosting it,
- you can omit it
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'rails'</span><span class="p">,</span> <span class="ss">:github</span> <span class="o">=&gt;</span> <span class="s1">'rails'</span></pre>
- <div class='description'>
- <b>NB:</b> This shorthand is insecure in versions of Bundler prior to 2.0! Use HTTPS instead
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'rails'</span><span class="p">,</span> <span class="ss">:git</span> <span class="o">=&gt;</span> <span class="s1">'https://github.com/rails/rails'</span></pre>
- <div class='description'>
- Alternatively, you can specify a full commit hash
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'rails'</span><span class="p">,</span> <span class="ss">:github</span> <span class="o">=&gt;</span> <span class="s1">'rails'</span><span class="p">,</span> <span class="ss">:ref</span> <span class="o">=&gt;</span> <span class="s1">'a9752dcfd15bcddfe7b6f7126f3a6e0ba5927c56'</span>&#x000A;</pre>
- </div>
- </div>
- <h2>Security</h2>
- <div class='contents'>
- <div class='bullet'>
- <div class='description'>
- <code>http://</code> and <code>git://</code> 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 <code>:github</code> shortcut translates to a <code>git://</code>
- URL in pre-2.0 versions.
- </div>
- </div>
- </div>
- <h2 id='local'>Local Git Repos</h2>
- <div class='contents'>
- <div class='bullet'>
- <div class='description'>
- Bundler also allows you to work against a git repository locally
- instead of using the remote version. This can be achieved by setting
- up a local override:
- </div>
- <pre class="highlight plaintext">bundle config local.GEM_NAME /path/to/local/git/repository&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- For example, in order to use a local Rack repository, a developer could call:
- </div>
- <pre class="highlight plaintext">bundle config local.rack ~/Work/git/rack</pre>
- <div class='description'>
- and setup the git repo pointing to a branch:
- </div>
- <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'rack'</span><span class="p">,</span> <span class="ss">:github</span> <span class="o">=&gt;</span> <span class="s1">'rack/rack'</span><span class="p">,</span> <span class="ss">:branch</span> <span class="o">=&gt;</span> <span class="s1">'master'</span>&#x000A;</pre>
- </div>
- <div class='bullet'>
- <div class='description'>
- <p>
- 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 <code>Gemfile.lock</code> 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.
- </p>
- <p>
- 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 <code>Gemfile</code> in order to use this feature. If the branch
- specified in the <code>Gemfile</code> 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.
- </p>
- <p>
- Finally, Bundler also ensures that the current revision in the
- <code>Gemfile.lock</code> exists in the local git repository. By doing this, Bundler
- forces you to fetch the latest changes in the remotes.
- </p>
- </div>
- </div>
- <div class='bullet'>
- <div class='description'>
- <p>If you do not want bundler to make these branch checks, you can override it by setting this option:</p>
- </div>
- <pre class="highlight plaintext">bundle config disable_local_branch_check true</pre>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div id='footer'>
- <img src="/images/emocow.png" />
- <img src="/images/panda.jpg" />
- <div class='spacer'></div>
- <div id='credits'>
- <p>
- Many thanks to Bundler's <a href="/contributors.html">contributors</a>
- and <a href="/sponsors.html">sponsors</a>
- </p>
- </div>
- <div class='spacer'></div>
- <img src="/images/bundler-small.png" />
- </div>
- <a href='http://github.com/bundler/bundler/' id='github'>
- <img alt='Fork me on GitHub' src='http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png'>
- </a>
- <div id='prod-versions'>
- Docs:
- <a href="/v0.9/">v0.9</a>
- <a href="/v1.0/">v1.0</a>
- <a href="/v1.1/">v1.1</a>
- <a href="/v1.2/">v1.2</a>
- <a class="current" href="/v1.3/">v1.3</a>
- <a href="/v1.5/index.html">v1.5</a>
- <a href="/">v1.6</a>
- </div>
- <script>
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
- ga('create', 'UA-39559982-1', 'bundler.io');
- ga('send', 'pageview');
- </script>
- </body>
-</html>