title: Why can't I push this up-to-date Git subtree?
body: <p>I am using Git subtree with a couple of projects that I am working on, in order to share some base code between them. The base code gets updated often, and the upgrades can happen in anyone of the projects, with all of them getting updated, eventually.</p>
  
  <p>I have ran into a problem where git reports that my subtree is up to date, but pushing gets rejected. For example:</p>
  
  <pre><code>#! git subtree pull --prefix=public/shared project-shared master
  From github.com:****
  * branch            master     -&gt; FETCH_HEAD
  Already up-to-date.
  </code></pre>
  
  <p>If I push, I should get a message that there is nothing to push... Right? RIGHT? :(</p>
  
  <pre><code>#! git subtree push --prefix=public/shared project-shared master
  git push using:  project-shared master
  To git@github.com:***
  ! [rejected]        72a6157733c4e0bf22f72b443e4ad3be0bc555ce -&gt; master (non-fast-forward)
  error: failed to push some refs to 'git@github.com:***'
  hint: Updates were rejected because the tip of your current branch is behind
  hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
  hint: before pushing again.
  hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  </code></pre>
  
  <p>What could be the reason for this? Why is pushing failing?</p>