Created
July 17, 2012 21:07
-
-
Save shytikov/3132078 to your computer and use it in GitHub Desktop.
commit-msg hook script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Automatically adds branch name and branch description to every commit message. | |
# | |
NAME=$(git branch | grep '*' | sed 's/* //') | |
DESCRIPTION=$(git config branch."$NAME".description) | |
TEXT=$(cat "$1" | sed '/^#.*/d') | |
if [ -n "$TEXT" ] | |
then | |
echo "$NAME"': '$(cat "$1" | sed '/^#.*/d') > "$1" | |
if [ -n "$DESCRIPTION" ] | |
then | |
echo "" >> "$1" | |
echo $DESCRIPTION >> "$1" | |
fi | |
else | |
echo "Aborting commit due to empty commit message." | |
exit 1 | |
fi |
On a "git commit -a" I always get "aborting commit due to empty commit message".
Great post +11
you should put this in your prepare-commit-msg instead
@danwald you cannot start lines with # in the vim editor, that makes it harder to put in the prepare hook
A tiny amount of code golf for getting the branch name if you care:
NAME=$(git branch | sed -n -e 's/^* //gp')
This is great, thank you. It has cause a little problem when doing an interactive rebase and attempting to reword a commit.
Also, if you just wanna get your branch name, without using sed
, grep
nor awk
:
NAME=$(git symbolic-ref --short HEAD)
NAME=$(git branch --show-current)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi! Thanks for the script. One issue though. When I use this hook, I lose any line breaks in the commit messages. Any idea how to fix this?