title: Git hook commit-msg to ensure the commit message contains a string that conforms to a regex
body: <p>I'm trying to make bash script to be used as a git commit-msg hook. Essentially I want to ensure that the commit message contains a string which matches the regex. My regex is correct, but i'm not sure how to check if the message contained in <code>.git/COMMIT_EDITMSG</code> matches the regex.</p>
  
  <pre><code>#!/bin/sh
  #
  # This hook verifies that the commit message contains a reference to a tfs item
  
  RED=$(tput setaf 1)
  NORMAL=$(tput sgr0)
  # Regex to validate a string contains "#" followed by 4 or 5 digits anywhere in the commit message
  regex="#[0-9]{4,5}($|[^0-9])"
  
  # I NEED TO FIGURE OUT HOW TO READ THE CONTENTS OF THIS FILE AND ENSURE IT MATCHES THE REGEX
  echo "MSG = $1" # This prints "MSG = .git/COMMIT_EDITMSG"
  
  # If the commit message does not match the regex
  if ! [[ $1 =~ $regex ]]; then
    echo "${RED}ERROR - Missing tfs item in commmit message.$NORMAL"
    exit 1
  else
    echo "MESSAGE IS GOOD?"
  fi
  
  exit 0
  </code></pre>