title: Should I rebase master onto a branch that's been pushed?
body: <p>We use the <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow" rel="nofollow noreferrer" title="Feature Branch Workflow">feature branch workflow</a> in our small team of developers. We're currently working on a large project, so one of the developers has pushed their feature branch to origin, where everyone else can checkout their own local copy.</p>
  
  <pre><code>[leonard@dev public]$ git branch -avv
    master                        9d53b40 [origin/master] Fix reviews
  * responsive                    0c04643 [origin/responsive] Add media queries
    remotes/origin/HEAD           -&gt; origin/master
    remotes/origin/master         9d53b40 Fix reviews
    remotes/origin/responsive     0c04643 Add media queries
  </code></pre>
  
  <p>When developing on master, we create feature branches (i.e. master_hotfix), then when we're ready to merge it in we first rebase <code>master</code> on to it before doing so. This gives us a nice linear history that we prefer. We thought this would be the best way to do this with our responsive project too, so we would create a new branch (i.e. responsive_some-feature) based on the responsive branch. The same <code>git pull</code>, <code>git rebase responsive responsive_some-feature</code> can then be used here, too.</p>
  
  <p>But we're a bit confused as to whether we should (and if so, at what point) rebase <code>master</code> on to <code>responsive</code>? Before the <code>responsive</code> branch was pushed to <code>origin</code>, rebasing <code>master</code> on to it was simple, but is rebasing <code>master</code> to <code>responsive</code> then <code>responsive</code> to <code>responsive_some-feature</code> correct? When I <em>do</em>, I see (along with a few conflicts) this:</p>
  
  <pre><code># On branch responsive
  # Your branch and 'origin/responsive' have diverged,
  # and have 112 and 109 different commit(s) each, respectively.
  #
  nothing to commit (working directory clean)
  </code></pre>
  
  <p>Usually at this point I see a clean working directory, where I can then checkout <code>master</code> and merge my feature branch in. Alas, after this rebase the commits from <code>master</code> are in there, with the new commits in <code>responsive</code> coming after them, correctly, but is this the right method? How should I proceed, or should I use a different method to keep <code>responsive</code> up to date with <code>master</code>?</p>
  
  <p><strong>Edit: I've made a graphic to illustrate my workflow better:</strong></p>
  
  <p><img src="https://i.imgur.com/lLEzXwZ.png" alt=""></p>