title: git push failure with no conflict
body: <p>I've read a few explanations for a broken git push, but none of them seem to cover this case.</p>
  
  <p>I'm unable to push my local changes to a remote repository, even after a pull and with no conflicts.</p>
  
  <pre><code>$ git pull
  Already up-to-date
  
  $ git st
  # On branch unstable
  nothing to commit (working directory clean)
  
  $ git push
  To ssh://&lt;url&gt;
   ! [rejected]        master -&gt; master (non-fast-forward)
  error: failed to push some refs to 'ssh://&lt;url&gt;'
  To prevent you from losing history, non-fast-forward updates were rejected
  Merge the remote changes (e.g. 'git pull') before pushing again.  See the
  'Note about fast-forwards' section of 'git push --help' for details.
  </code></pre>
  
  <p><code>&lt;url&gt;</code> is, of course, the real URL of my repository.</p>
  
  <p>There are no changes to pull, no conflicts, and I'm not sure what else could cause this to fail.</p>
  
  <p>I believe I've got everything set up correctly:</p>
  
  <pre><code>$ git remote -v
  origin  ssh://&lt;url&gt; (fetch)
  origin  ssh://&lt;url&gt; (push)
  
  $ git branch -v
    master   175a09d [behind 18] openReview must now be called from thread other than main.
  * unstable c9e5cab Progress on attachments.
  </code></pre>
  
  <p>In the past, I've just deleted my local repository. However, this is happening more frequently.</p>
  
  <ol>
  <li>What caused this to happen?</li>
  <li>How can I avoid it in the future?</li>
  <li>How am I supposed to fix this?</li>
  </ol>