title: Git says local branch is behind remote branch, but it's not
body: <p>Scenario:  </p>
  
  <ol>
  <li>I make a new branch<br></li>
  <li>hack on it<br></li>
  <li>commit it<br></li>
  <li>push it<br></li>
  <li>hack on it some more<br></li>
  <li>commit again<br></li>
  <li>try to push again<br></li>
  </ol>
  
  <p>Git responds:</p>
  
  <blockquote>
    <p>Updates were rejected because the tip of your current branch is behind
    its remote counterpart. etc.</p>
  </blockquote>
  
  <p>I'm the only one hacking on this branch - no one else is touching it.  The remote branch is actually <em>behind</em> the local branch.  I shouldn't have to pull at all.</p>
  
  <p>(And if I do pull, Git reports conflicts between the two, and forces me to merge the branch into itself)</p>
  
  <p>Why is this (likely) happening?  And how can I diagnose/fix it?</p>
  
  <p>To be clear, I'm not branching anywhere, and <em>no one else</em> is working on it:</p>
  
  <pre><code>Remote: Commit A -------- Commit B  
  
  Local:  Commit A -------- Commit B -------- Commit C  
  </code></pre>
  
  <p>C is a straight continuation of B, no branching involved.  But git thinks C is a branch of A:  </p>
  
  <pre><code>Remote: Commit A -------- Commit B  
  
                    ------- Commit C  
                  /  
  Local:  Commit A -------- Commit B  
  </code></pre>
  
  <p>It's not; it's a straight continuation of B.</p>