I made a mistake today. I pushed my incomplete development code to the official master branch. There’s no excuse from my side.
It still sounds a good idea to disallow direct pushing by adding a protection rule at github for official branches (master, 2.2.1, etc.)
Require a pull request before merging
We don’t get that many commits daily, so it won’t be a burden for developers.