Skip to content

Instantly share code, notes, and snippets.

@jenikm
Last active June 3, 2021 00:19
Show Gist options
  • Save jenikm/f030d0aa6c4a5a348e1ad71ade5750b8 to your computer and use it in GitHub Desktop.
Save jenikm/f030d0aa6c4a5a348e1ad71ade5750b8 to your computer and use it in GitHub Desktop.
Automatically adds branch name on commit
#!/bin/bash
# Put this into: .git/hooks/prepare-commit-msg
# This way you can customize which branches should be skipped when
# prepending commit message.
BRANCHES_TO_SKIP=(master main env/development env/staging env/production);
for b in "${BRANCHES_TO_SKIP[@]}"; do
BRANCHES_TO_SKIP=("${BRANCHES_TO_SKIP[@]}" "$b-slave")
done;
BRANCH_NAME=$(git symbolic-ref --short HEAD | sed 's/heads\///')
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
@jenikm
Copy link
Author

jenikm commented Sep 27, 2018

curl 'https://gist.githubusercontent.com/jenikm/f030d0aa6c4a5a348e1ad71ade5750b8/raw/b37a43f58079879a07df416eff47857bbd0e0049/prepare-commit-msg' > .git/hooks/prepare-commit-msg && chmod +x .git/hooks/prepare-commit-msg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment