Currently when I\'m using GIT I create a branch for each job and make various commits before I\'m finished. I then merge back with my master branch and push upstream. I\'m l
I consider merge --squash extremely useful when I use a "branch per feature" approach. My commit history in temporary branches is a complete garbage, absolutely meaningless. And I really want to be unable to see that history anymore, not just to be able to skip it.
When the commits go to code review, it is important not to create extra commits.