Second, you might have more than one commit you want to merge to master, not just a single commit.
Also rebasing is trivial and very quick once you have done some basic reading about it.
† My company's not on Github Enterprise and I don't have a repo and a second user handy to double check on public Github.
You need better tools. Even in GitHub you can click on "force pushed" and see the diff.
> there’s no guarantee they would all pass CI
There wasn't any guarantee before, either. If you want that guarantee, make the CI build every commit.
Guarantee is the wrong word. The point is that if you always squash merge after passing the entire test suite you don’t have a bunch of potential garbage commits in history that you have to wade through when bisecting.
As for building every commit that’s probably a tough sell and a poor use of money for what benefit?