According to this snippet:
#!/bin/sh
#
# git prepare-commit-msg hook for automatically prepending an issue key
# from the start of the current branch name to commit messages.
# check if commit is merge commit or a commit ammend
if [ $2 = "merge" ] || [ $2 = "commit" ]; then
exit
fi
ISSUE_KEY=`git branch | grep -o "\* \(.*/\)*[A-Z]\{2,\}-[0-9]\+" | grep -o "[A-Z]\{2,\}-[0-9]\+"`
if [ $? -ne 0 ]; then
# no issue key in branch, use the default message
exit
fi
# issue key matched from branch prefix, prepend to commit message
TEMP=`mktemp /tmp/commitmsg-XXXXX`
(echo "$ISSUE_KEY: $(cat $1)") > $TEMP
cat $TEMP > $1
- Make sure the folder(s)
~/.git_template/hooks
exists - Drop the file above in there and make sure it’s named
prepare-commit-msg
- make
~/.git_template/hooks/prepare-commit-msg
executable. (chmod +x) - make sure your
~/.gitconfig
contains
[init]
templatedir = ~/.git_template
Now anytime you checkout a repo OR use git init
in a directory, the prepare-commit-msg
will be copied into your project’s .git/hooks
folder.
Note: You can safely run git init
within pre-existing git projects to get the file copied over
Credits to Jonathan Doklovic