title: Why use "HEAD:master" instead of just "master" in a "git push origin"
body: <p>I am synching multiple git repositories. It's challenging; I can sync just the diffs easily, but if I want to sync changes I need to do pulls and pushes, and (sometimes) resolve the conflicts locally.</p>
  
  <p>Sometimes, when I do a <code>git push</code>, git tells me to use:</p>
  
  <pre><code>git push origin HEAD:&lt;name-of-remote-branch&gt;
  </code></pre>
  
  <p>which usually becomes:</p>
  
  <pre><code>git push origin HEAD:master
  </code></pre>
  
  <p>However, this also works:</p>
  
  <pre><code>git push origin master
  </code></pre>
  
  <p>So what's the difference? Why do I need the <code>HEAD:</code> ?</p>