I like the idea of #PreCommit hooks running tests, linters and whatever. In practice, I almost always disable them after some time having found it mostly distracting / annoying.
Running checks pre-push strikes the right balance for me, but that’s already so ingrained in me that I don’t need help to do so.