I get asked pretty regularly what my opinion is on merge commits vs rebasing vs squashing.
I've typed up this response so many times that I've decided to just put it in a gist so
I can reference it whenever it comes up again.
I use merge, squash, rebase all situationally. I believe they all have their merits
but their usage depends on the context. I think anyone who says any particular strategy
is the right answer 100% of the time is wrong, but I think there is considerable
acceptable leeway in when you use each. What follows is my personal and professional
opinion: