Github default squash commit template & merge strategy makes it easy to go from the squash commit to the feature branch. So you get best of both worlds -- clean master and granular history on the branch. Bisect on master tells you which branch broke it, and then bisect on the branch if you want to find the original commit. Same with blame.
IMO squash 4 the win. Github squash defaults work well. Gitlab squash defaults don't.
IMO squash 4 the win. Github squash defaults work well. Gitlab squash defaults don't.