Git hooks are scripts that Git executes before or after events such
as: commit, push, and receive. Git hooks are a
built-in feature - no need to download anything. Git hooks are run
locally.
These hook scripts are only limited by a developer's imagination.
Some example hook scripts include:
pre-commit: Check the commit message for spelling errors.
pre-receive: Enforce project coding standards.
post-commit: Email/SMS team members of a new commit.
post-receive: Push the code to production.
How do git hooks work?
Every Git repository has a .git/hooks folder with a
script for each hook you can bind to. You're free to change or
update these scripts as necessary, and Git will execute them when
those events occur.
Here's a full list of hooks you can attach scripts to:
Fair question! Git hooks can greatly increase your productivity as a
developer. For example, being able to push to your staging or
production environment without ever leaving Git is just plain
awesome. Update your code, make a commit and push, and your code can
be running in any environment you specify. No need to mess with ssh
or ftp.
How do I implement Git hooks?
The short and easy: Overwrite (or create) one of the scripts in
.git/hooks and make it executable.
Git Build Hook Maven Plugin
- A maven plugin for managing client side (local) git configuration and installing hooks for those working on your project.
Git::Hooks - A
framework for implementing Git (and Gerrit) hooks.
git-pre-commit-hook
- Hook that blocks bad commits. Useful for Python-development.
.githooker
- Eases setup, maintenance, handling of git-hooks across
teams/projects for virtually all languages + common git-hook-ish
tasks as declarative configuration inside your repo!
GJira
- Automatically add Jira task ID and story ID to the body of the
commit message.
Commit lint
- Commitlint helps your team adhere to a commit convention.