title: How to push/pull Git rebase
body: <p>I'd like to use <code>git rebase</code> so as to cleanly merge a feature in the master branch (in less commits or at least at the top of the change log). Note that <em>I'm the only one working on the repository</em>.</p>
  
  <p>After reading <a href="https://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs-merge-questions">Git workflow and rebase vs merge questions</a>, I found <code>git rebase</code> would be pretty nice and like Micah I'd like to <code>git push</code> rebased changes simply because <strong>I'm working on them from different places</strong> (ex: my notebook, my home, another PC somewhere...)</p>
  
  <p>So here are two solutions (to the bi-directional ugly merge):</p>
  
  <ol>
  <li>Using <code>git push -f</code> to push, and then pulling on other machine, but how to cleanly get the latest version on other machines?</li>
  <li>Using merge to merge master changes to the feature branch, git push/pull, and once mature, do a single rebase (in one or more commits cleanly)</li>
  </ol>
  
  <p>(2) would be like below:</p>
  
  <pre><code>git co -b feature-a
  ... change files
  git push origin feature-a
  ... moving to another PC
  git pull origin feature-a
  ... change files
  git merge master
  ... change files (not the "special rebase")
  git rebase master
  git co master
  git merge feature-a
  git branch -d feature-a
  git push origin :feature-a
  </code></pre>
  
  <p>Which solution do you think would work? I haven't tried either of them so far (mostly by fear of making my log more messy).</p>