title: How to git fetch efficiently from a shallow clone
body: <p>We use <a href="http://webconverger.org/upgrade">git to distribute an operating system and keep it upto date</a>. We can't distribute the full repository since it's too large (>2GB), so we have been using shallow clones (~300M). However <a href="https://github.com/Webconverger/webc/issues/174">recently when fetching from a shallow clone, it's now inefficiently fetches the entire >2GB repository</a>. This is an untenable waste of bandwidth for deployments.</p>
  
  <p>The git documentation says you cannot fetch from a shallow repository, though that's strictly not true. Are there any workarounds to make a <code>git clone --depth 1</code> able to fetch just what's changed from it? Or some other strategy to keep the <strong>distribution size as small as possible</strong> whilst having all the bits git needs to do an update?</p>
  
  <p>I have unsuccessfully tried cloning from <code>--depth 20</code> to see if it will upgrade more efficiently, that didn't work. I did also look into <a href="http://git-scm.com/docs/git-bundle">http://git-scm.com/docs/git-bundle</a>, but that seems to create huge bundles.</p>