Github has a "squash and merge" option during merging. You can disable the other options (merge, rebase) in the repo settings.
I've worked with squash and merge almost everywhere and it's great. Keeps history clean (1 commit = 1 ticket, usually), and links back to the PR with discussions and context.