title: Git Merge Fast-Forward vs Git Rebase
body: <p>What is the difference between a fast-forwarded <code>git merge</code> and a <code>git rebase</code>? Don't both accomplish keeping history linear and no merge commits? If so, why would one use one over the other? If not, which is what I think is true, what is the whole story that I'm not seeing?</p>
  <p>Thanks!</p>