$ bundle package
Places the gem binaries in vendor/cache, as noted. SCM those.
"While installing gems, Bundler will check vendor/cache and then your system's gems. If a gem isn't cached or installed, Bundler will try to install it from the sources you have declared in your Gemfile."
http://gembundler.com/bundle_install.html
Heroku uses this tree lookup AFAIK.