Forked from bartoszmajsak/prepare-commit-msg.sh
Last active
November 28, 2018 06:28
-
-
Save hoektoe/5c6a658a24bb25932f4cbd71a1853eb0 to your computer and use it in GitHub Desktop.
How to automatically prepend git commit with a branch name
This file contains hidden or 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/bash | |
# Create branch name with JIRA code in this format ABC-123 | |
# JIRA code needs to be in capitals divided by - and followed by numerals | |
# Branch example: css_minified_ABC-123 or ABC-123_css_minified | |
# Use github desktop or $ git commit -m "Recompiled css into minified version" | |
# this will result with commit "[ABC-123] Recompiled css into minified version" | |
# Installation | |
# navigate to root of project | |
# curl https://gist.githubusercontent.com/hoektoe/5c6a658a24bb25932f4cbd71a1853eb0/raw/baf9b7f24e3ebf085977250428670e9ab0e368d5/prepare-commit-msg.sh > .git/hooks/prepare-commit-msg && chmod u+x .git/hooks/prepare-commit-msg | |
# Customize which branches should be skipped when prepending commit message. | |
if [ -z "$BRANCHES_TO_SKIP" ]; then | |
BRANCHES_TO_SKIP=(master develop test) | |
fi | |
BRANCH_NAME=$(git symbolic-ref --short HEAD | grep -o '[A-Z]\+-[0-9]\+') | |
BRANCH_NAME="${BRANCH_NAME##*/}" | |
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$") | |
BRANCH_IN_COMMIT=$(grep -c "\[$BRANCH_NAME\]" $1) | |
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then | |
sed -i.bak -e "1s/^/[$BRANCH_NAME] /" $1 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment