title: What is the purpose of vendor/bundle? Heroku tells me to remove it
body: <p>Upon pushing some changes to Heroku, I noticed a warning about <code>vendor/bundle</code> (see <strong>WARNING</strong> below).</p>
  
  <p>What is the purpose of this directory if, according to the warning, it should be "removed" from Git tracking?</p>
  
  <p>Why isn't <code>vendor/bundle</code> automatically <code>.gitignore</code>'d by default by Rails?</p>
  
  <p>Should I run <code>bundle pack</code>? (Is it actually <code>bundle package</code>??)</p>
  
  <p>What are the pros and cons around <code>bundle pack</code> (relative to both <code>development</code> and <code>production</code>)?</p>
  
  <p>To make this even more confusing, there's a popular blog post, by Ryan McGeary, titled <a href="http://ryan.mcgeary.org/2011/02/09/vendor-everything-still-applies/">"Vendor Everything" Still Applies</a> that strongly argues for running <code>bundle install --path vendor</code> and <code>echo 'vendor/ruby' &gt;&gt; .gitignore</code> and packaging gems in <code>vendor/cache</code> by running <code>bundle package</code>. Any light shed on this relative to my other concerns would be greatly appreciated.</p>
  
  <p>Thank you.</p>
  
  <pre><code>-bash&gt; git push production master
  ...
  
  -----&gt; Heroku receiving push
  -----&gt; Ruby/Rails app detected
  -----&gt; WARNING:  Removing `vendor/bundle`.
         Checking in `vendor/bundle` is not supported. Please remove this directory
         and add it to your .gitignore. To vendor your gems with Bundler, use
         `bundle pack` instead.
  -----&gt; Installing dependencies using Bundler version 1.2.1
         Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
         Using rake (0.9.2.2)
         Using i18n (0.6.0)
         ...
  </code></pre>