Sometimes you would like Git events (commits, pushes, etc.) to trigger scripts which take care of some tasks.
Hooks are scripts that are executed before/after certain events.
You can find and edit them here:
$ ls -l .git/hooks/
They can be used to enforce nearly any kind of policy for your project.
There are client-side and server-side hooks.
pre-commit: before commit message editor (example: make sure tests pass)prepare-commit-msg: before commit message editor (example: modify default messages)commit-msg: after commit message editor (example: validate commit message pattern)post-commit: after commit process (example: notification)pre-rebase: before rebase anything (example: disallow rebasing published commits)post-rewrite: run by commands that rewrite commitspost-checkout: after successful git checkout (example: generating documentation)post-merge: after successful mergepre-push: runs during git push before any objects have been transferredpre-auto-gc: invoked just before the garbage collection takes placepre-receive: before accepting any referencesupdate: like pre-receive but runs once per pushed branchpost-receive: after entire process is completed