Hooks used by GIT
=================
v0.99.6, Sep 2005

Hooks are little scripts you can place in `$GIT_DIR/hooks`
directory to trigger action at certain points.  When
`git-init-db` is run, a handful example hooks are copied in the
`hooks` directory of the new repository, but by default they are
all disabled.  To enable a hook, make it executable with `chmod
+x`.

This document describes the currently defined hooks.

applypatch-msg
--------------

This hook is invoked by `git-applypatch` script, which is
typically invoked by `git-applymbox`.  It takes a single
parameter, the name of the file that holds the proposed commit
log message.  Exiting with non-zero status causes the
'git-applypatch' to abort before applying the patch.

The hook is allowed to edit the message file in place, and can
be used to normalize the message into some project standard
format (if the project has one). It can also be used to refuse
the commit after inspecting the message file.

The default applypatch-msg hook, when enabled, runs the
commit-msg hook, if the latter is enabled.

pre-applypatch
--------------

This hook is invoked by `git-applypatch` script, which is
typically invoked by `git-applymbox`.  It takes no parameter,
and is invoked after the patch is applied, but before a commit
is made.  Exiting with non-zero status causes the working tree
after application of the patch not committed.

It can be used to inspect the current working tree and refuse to
make a commit if it does not pass certain test.

The default pre-applypatch hook, when enabled, runs the
pre-commit hook, if the latter is enabled.

post-applypatch
---------------

This hook is invoked by `git-applypatch` script, which is
typically invoked by `git-applymbox`.  It takes no parameter,
and is invoked after the patch is applied and a commit is made.

This hook is meant primarily for notification, and cannot affect
the outcome of `git-applypatch`.

pre-commit
----------

This hook is invoked by `git-commit-script`, and can be bypassed
with `--no-verify` option.  It takes no parameter, and is
invoked before obtaining the proposed commit log message and
making a commit.  Exiting with non-zero status from this script
causes the `git-commit-script` to abort.

The default pre-commit hook, when enabled, catches introduction
of lines with trailing whitespaces and aborts the commit when
a such line is found.

commit-msg
----------

This hook is invoked by `git-commit-script`, and can be bypassed
with `--no-verify` option.  It takes a single parameter, the
name of the file that holds the proposed commit log message.
Exiting with non-zero status causes the `git-commit-script` to
abort.

The hook is allowed to edit the message file in place, and can
be used to normalize the message into some project standard
format (if the project has one). It can also be used to refuse
the commit after inspecting the message file.

The default commit-msg hook, when enabled, detects duplicate
Signed-off-by: lines, and aborts the commit when one is found.

post-commit
-----------

This hook is invoked by `git-commit-script`.  It takes no
parameter, and is invoked after a commit is made.

This hook is meant primarily for notification, and cannot affect
the outcome of `git-commit-script`.

The default post-commit hook, when enabled, demonstrates how to
send out a commit notification e-mail.

update
------

This hook is invoked by `git-receive-pack`, which is invoked
when a `git push` is done against the repository.  It takes
three parameters, name of the ref being updated, old object name
stored in the ref, and the new objectname to be stored in the
ref.  Exiting with non-zero status from this hook prevents
`git-receive-pack` from updating the ref.

This can be used to prevent 'forced' update on certain refs by
making sure that the object name is a commit object that is a
descendant of the commit object named by the old object name.
Another use suggested on the mailing list is to use this hook to
implement access control which is finer grained than the one
based on filesystem group.

post-update
-----------

This hook is invoked by `git-receive-pack`, which is invoked
when a `git push` is done against the repository.  It takes
variable number of parameters; each of which is the name of ref
that was actually updated.

This hook is meant primarily for notification, and cannot affect
the outcome of `git-receive-pack`.

The default post-update hook, when enabled, runs
`git-update-server-info` to keep the information used by dumb
transport up-to-date.
