What hooks can and cannot do
Hooks are local scripts, so by default they live on your machine and do not travel with the repo. That is a feature, not a bug: it means your hooks are your own. To share them, put them in the repo and point git at them with core.hooksPath, but make sure the whole team wants the same checks before you force them on everyone.
The cost of an always-on gate
Every hook adds a small delay before your commit, and a strict one can get annoying when you are just throwing together a scratch change. The trick is to make hooks check the things that actually hurt, secrets, formatting, tests, and let the noise through. A hook you routinely work around is worse than no hook at all.