Benedikt Meurer JavaScript Engine Hacker and Programming Language Enthusiast.


git-hooks provides a simple mechanism to manage hooks for several Git repositories in a unified and simple way. It allows you to install hook scripts in a central location and use them for your Git repositories.

Installation #

You need CMake and GCC in order to build and install git-hooks. You will also need to have Git and Perl installed for the hooks to work properly. To build git-hooks run

cmake /path/to/git-hooks

in a new directory (preferably, tho you may also run it from the source directory). Then, use

make install

to install git-hooks. This will install git-hooks to /usr/local. You can use ccmake to change the installation prefix. Below, we will assume that you installed git-hooks to /usr/local.

Repository setup #

To setup a repository using git-hooks, just use the repository template that ships with git-hooks.

mkdir myrepo.git
cd myrepo.git
git --bare init --template=/usr/local/share/git-hooks/template ...

This will setup the new repository myrepo.git with git-hooks. Check the sample config file that will be created for myrepo.git.

Repository migration #

To migrate an existing repository to use git-hooks, you should first backup your existing hook scripts. Then replace the hooks with the ones from /usr/local/share/git-hooks/template/hooks. Afterwards, you should migrate your previous hook scripts to global hook scripts used by git-hooks.

Configuration #

The git-hooks package includes several useful hooks, which can be configured to your needs using git config settings in your repository (or even global settings from /etc/gitconfig). The /usr/local/share/git-hooks/template/config file provides a sample configuration file.

Please see the hook scripts in /usr/local/share/git-hooks/*.d/ for the various supported config settings.

License #

git-hooks is licensed under the GNU GENERAL PUBLIC LICENSE Version 2. See the LICENSE file for details.

Source code

Available on GitHub:

Download it in either zip or tar formats.

Clone the project with Git by running:

git clone git://

Bug Reports

If you come across any problems, please create a ticket and we will try to get it fixed as soon as possible.

Report a Bug


Once you have made your commits:

  1. Fork git-hooks.
  2. Create a topic branch - git checkout -b my_branch
  3. Push to your topic branch - git push origin my_branch
  4. Create a Pull Request from your topic branch.
  5. That's it!

Fork git-hooks

Copyright © 2009-2011 Benedikt Meurer. See the LICENSE file for details.