There are lots of articles on this topic, eg: https://blog.carbonfive.com/2017/08/28/always-squash-and-rebase-your-git-commits/ (note that squashing down to 1 commit shouldn't be necessary but at least rebasing should be done)
github UI also allows to rebase (instead of merge) would really simplify things like visualization / understanding history, git bisect. It shouldn't matter at what commit was a feature started, only thing that matter should be when it was incorporated into master.