### Create a directory to hold Git hooks ``` mkdir -p ~/.git_template/hooks/ ``` ### Add This file to ~/.git_template/hooks/prepare-commit-msg ```ruby #!/bin/sh if [ -z "$BRANCHES_TO_SKIP" ]; then BRANCHES_TO_SKIP=(master develop) fi BRANCH_NAME=$(git symbolic-ref --short HEAD) 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 ``` ### Make the file executable ``` chmod a+x ~/.git_template/hooks/prepare-commit-msg ``` ### Tell Git where to find the hooks ```ruby git config --global init.templatedir '~/.git_template' ``` ### To add the custom hook to a project navigate to the project, then: ``` git init ```