When working with Git and Jira (or any other issue tracker) sooner or later there comes a need to prefix git commit message with a ticket number. That way it’s faster to locate why a piece of code was written and it opens some opportunities for automation and tool integration.
What was I aiming for was that when I’m on a
feature/TICKET-1234-name-of-the-branch branch then in each commit message I would have a prefix with ticket number and the rest of a message
[TICKET-1234] Adds some super code. I know that git has
hooks that allow for altering it’s behaviour and that one I’m looking for is
After some Googling I found a lot of answers … that did not work 😢 It turns out that tools installed on OS X differ from “normal” Linux ones and some other flags are needed to make them work. I will come clean I’m not a terminal guru and I didn’t wanted to became one over this. So after some fighting and trying and error here is a working combination for OS X:
#!/bin/bash # get current branch branchName=`git rev-parse --abbrev-ref HEAD` # search jira issue id in a pattern such a "feature/ABC-123-description" jiraId=$(echo $branchName | sed -nE 's,[a-z]+/([A-Z]+-[0-9]+)-.+,\1,p') # only prepare commit message if pattern matched and jiraId was found if [[ ! -z $jiraId ]]; then # $1 is the name of the file containing the commit message sed -i.bak -e "1s/^/[$jiraId] /" $1 fi
What you need to do is you have to add/edit
project/.git/hooks/commit-msg and making sure that it’s exactable by running in terminal
chmod +x commit-msg.
You can add a commit message using any GUI Git client:
Either way you will have a nice prefix commit message like so:
Take care and I wish you fast compiling code 😎
You can download it from here: https://github.com/sloik/SloikPresentations/blob/master/TicketTagCommitMessage/commit-msg