title: Merge (with squash) all changes from another branch as a single commit
body: <p>In Git, is there a way to merge all changes from one branch into another, but squash to a single commit at the same time?  </p>
  
  <p>I often work on a new feature in a separate branch and will regularly commit/push - mainly for backup or to transfer what I'm working on to another machine.  Mostly those commits say "Feature xxx WIP" or something redundant.</p>
  
  <p>Once that work is finished and I want to merge WIP branch back into master, I'd like to discard all those intermediate commits, and just a have a single clean commit.</p>
  
  <p>Is there an easy way to do this? </p>
  
  <p>Alternatively, how about a command that squashes all commits on a branch since the point where it was branched?</p>