path: root/Documentation
diff options
authorJunio C Hamano <>2008-02-17 01:56:59 (GMT)
committerJunio C Hamano <>2008-02-17 01:56:59 (GMT)
commit1ae419cb3902e6cc45538a9673539ed5316fcf30 (patch)
treeb347204ec26b40a72b394f75d357c3278d75bab9 /Documentation
parentfef1c4c0a0766b83cfacaf6276d7bd0d1aa9a2e4 (diff)
parent8089c85bcba89464b9b2a32fa948ed85eb367e70 (diff)
Merge branch 'pb/prepare-commit-msg'
* pb/prepare-commit-msg: git-commit: add a prepare-commit-msg hook git-commit: Refactor creation of log message. git-commit: set GIT_EDITOR=: if editor will not be launched git-commit: support variable number of hook arguments
Diffstat (limited to 'Documentation')
2 files changed, 31 insertions, 2 deletions
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index c3725b2..b4ae61f 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -280,8 +280,8 @@ order).
-This command can run `commit-msg`, `pre-commit`, and
-`post-commit` hooks. See link:hooks.html[hooks] for more
+This command can run `commit-msg`, `prepare-commit-msg`, `pre-commit`,
+and `post-commit` hooks. See link:hooks.html[hooks] for more
diff --git a/Documentation/hooks.txt b/Documentation/hooks.txt
index f110162..76b8d77 100644
--- a/Documentation/hooks.txt
+++ b/Documentation/hooks.txt
@@ -61,6 +61,35 @@ The default 'pre-commit' hook, when enabled, catches introduction
of lines with trailing whitespaces and aborts the commit when
such a line is found.
+All the `git-commit` hooks are invoked with the environment
+variable `GIT_EDITOR=:` if the command will not bring up an editor
+to modify the commit message.
+This hook is invoked by `git-commit` right after preparing the
+default log message, and before the editor is started.
+It takes one to three parameters. The first is the name of the file
+that the commit log message. The second is the source of the commit
+message, and can be: `message` (if a `\-m` or `\-F` option was
+given); `template` (if a `\-t` option was given or the
+configuration option `commit.template` is set); `merge` (if the
+commit is a merge or a `.git/MERGE_MSG` file exists); `squash`
+(if a `.git/SQUASH_MSG` file exists); or `commit`, followed by
+a commit SHA1 (if a `\-c`, `\-C` or `\--amend` option was given).
+If the exit status is non-zero, `git-commit` will abort.
+The purpose of the hook is to edit the message file in place, and
+it is not suppressed by the `\--no-verify` option. A non-zero exit
+means a failure of the hook and aborts the commit. It should not
+be used as replacement for pre-commit hook.
+The sample `prepare-commit-msg` hook that comes with git comments
+out the `Conflicts:` part of a merge's commit message.