title: Git push with full refspec not working
body: <p>I have 2 branches (both locally and remotely on github). I will call them BranchA and BranchB.
  I have BranchA with commits c1, c2 and c3.
  I have BranchB only with commit c1.
  Both branches are totally updated with github, and I can check that BranchA has c1,c2 and c3 and BranchB has only c1.</p>
  
  <p>I want to push from local BranchA to remote BranchB. To do this I try:</p>
  
  <pre><code>git push origin refs/heads/BranchA:refs/remotes/origin/BranchB
  </code></pre>
  
  <p>When I do this, I get a strange output:</p>
  
  <pre><code>Total 0 (delta 0), reused 0 (delta 0)
  To https://github.com/&lt;username&gt;/&lt;repo&gt;.git
     &lt;hash&gt;  BranchA -&gt; origin/BranchB
  </code></pre>
  
  <p>When I go to github I see that BranchB is not updated and still only has c1.
  Then, if I run the command again, it returns that everything is up to date.</p>
  
  <p>This was confusing me, but it got worse since when I try to do the command <strong>without</strong> the full ref, like this:</p>
  
  <pre><code>git push origin BranchA:BranchB
  </code></pre>
  
  <p>...it worked.</p>
  
  <p>I am very confused by this. I searched for it and I thought that using the full ref (<em>/refs/heads/</em> for example) would never do any harm.</p>
  
  <p>Why is this happening? Shouldn't it work when I specify the full branch name?</p>