title: Git: Pulling a rebased branch
body: <p>Let me describe my situation:</p>
  
  <p>Mr Blond and Mr Orange are working on branch A that branches out of the master branch on commit M1. Branch A has 2 commits: A1 and A2.</p>
  
  <pre><code>M1  
     \
      \
       A1 - A2
  </code></pre>
  
  <p>Meanwhile, Mr Orange committed and pushed 2 more commits on the master branch, M2 and M3.</p>
  
  <pre><code>M1  - M2 - M3
     \
      \
       A1 - A2
  </code></pre>
  
  <p>Mr Blond pulls from the remote, and after a while decides to rebase onto the master branch:</p>
  
  <pre><code>M1  - M2 - M3
     \         \
      \         \
       A1 - A2   A1` - A2`
  </code></pre>
  
  <p>Now A1` and A2` are the rebased commits that exist locally at Mr blond's, and A1 and A2 exist remotely. Mr Blond pushes his commits, using <strong>-f</strong> to force his changes and "rewrite" history. Now the remote repository looks like this:</p>
  
  <pre><code>M1  - M2 - M3
               \
                \
                 A1` - A2`
  </code></pre>
  
  <p>But Mr. Orange worked on the A branch as well. His local repository still looks like this:</p>
  
  <pre><code>M1  - M2 - M3
     \
      \
       A1 - A2
  </code></pre>
  
  <p>What does Mr. Orange need to do in order to be synchronized with A branch in the remote repository?</p>
  
  <p>A normal pull won't work. Will <strong>pull -f</strong> force the changes from the remote locally? I know that deleting the local version of A and bringing it again from the remote repository will do the trick but that doesn't seem to be a good way to achieve that.</p>