At my first job after university, we did releases every Friday evening. From 3-5pm, all you would see in the Slack channel was a flurry of everyone committing straight to master (with a bunch of merge conflict commits between). Oh and then we'd release. Fun times.
A free for all, late Friday deployment is baffling… We’ve got a strict window of Tuesday-Thursday for releases (unless it’s a critical issue), and a 2-3 day merge freeze to help mitigate unexpected changes.
We’ve got a relatively small team with LOTS of moving parts, so minimizing deployment issues is always top of mind.
I literally know multi billion dollar B2C startups doing the same. It's got so toxic that the management regularly fires people and to fill their spots, they offer obscene amounts of money just for starter positions.
That's no longer a technical process issue but more of a teamcoach/HR kind of issue then. You should be able to assume good intentions from colleagues, imho.
We use a CI pipeline check which prevents merges to master if the code contains a TODO. A precommit hook only works if the developer has the hooks configured.