title: Git squash all commits in branch without conflicting
body: <p>A common development workflow for us is to checkout branch <code>b</code>, commit a bunch to it, then squash all those commits into one (still on <code>b</code>).</p>
  
  <p>However, during the <code>rebase -i</code> process to squash all the commits, there are frequently conflicts at multiple steps.</p>
  
  <p><strong>I essentially want to alter the branch into one commit that represents the state of the repository at the time of the final commit on <code>b</code></strong></p>
  
  <p>I've done some searching but I haven't found exactly what I'm looking for. I don't want to <code>merge --squash</code> because we would like to test the squashed feature branch before merging.</p>