title: How to handle the GitHub situation when `git pull upstream branch_name` gives conflicts when it shouldn't?
body: <p>It is strange that there is merge conflict for the following steps:</p>
  
  <ol>
  <li>I forked a repo <code>foo</code> on GitHub</li>
  <li>I <code>git clone</code> this forked repo to my hard drive</li>
  <li>After 3 days, somebody committed a lot of code to a branch <code>xyz</code></li>
  <li>So to make the branch exactly the same on my forked repo, I <code>git clone</code> again from the forked repo to a new folder <code>bar</code></li>
  <li><code>cd bar</code></li>
  <li><code>git checkout xyz</code></li>
  <li><code>git remote add upstream &lt;the URL for foo&gt;</code></li>
  <li><code>git pull upstream xyz</code></li>
  </ol>
  
  <p>And tons of merge conflict appeared.  I never touched anything in the branch <code>xyz</code>. It was another developer who committed a lot of things into <code>xyz</code>, so the branch <code>xyz</code> should be just updated with all his changed, instead of having merge conflicts.  Later on he said that it had merge conflicts because he <code>git push -f</code> and that if he never used <code>-f</code>, then it shouldn't have merge conflicts.</p>
  
  <p>How is this situation solved?</p>