title: Keeping remote repository in sync through a rebase
body: <p>I have a situation where I will have to rebase a topic branch to a master. That's fine, it's the normal rebase case and works great.</p>
  
  <p>The complication is when I'm trying to get this process to be in sync on a bare remote repository.</p>
  
  <p>e.g.</p>
  
  <pre>
  o--o--o origin/master
         \
          o--o origin/topic
  
  o--o--o clone/master - tracking origin/master
         \
          o--o clone/topic - tracking origin/topic
  </pre>
  
  <p>Now I make a commit to clone/master which I push to origin/master, so far so good.</p>
  
  <pre>
  o--o--o--n origin/master
         \
          o--o origin/topic
  
  o--o--o--n clone/master - tracking origin/master
         \
          o--o clone/topic - tracking origin/topic
  </pre>
  
  <p>This is where I want to end up:</p>
  
  <pre>
  o--o--o--n origin/master
            \
             o--o origin/topic
  
  o--o--o--n clone/master - tracking origin/master
            \
             o--o clone/topic - tracking origin/topic
  </pre>
  
  <p>I just can't seem to get there, please help.</p>
  
  <p>The workflow is:</p>
  
  <ol>
  <li> Clone the bare remote origin
  <li> Make changes to clone/master
  <li> Push changes to origin/master
  <li> Rebase clone/topic to either origin or clone master - doesn't seem to make too much difference
  <li> Now I want the origin/topic to reflect the rebase so I want to push but first I have to pull to make clone/topic fast forward then I end up a merge which has all the original commits from clone/topic with all the commits from origin/topic on top.
  </ol>