Ответ немного зависит от того, что вы пытаетесь сделать с сообщением фиксации. Вы можете спросить о трех крючках:
prepare-commit-msg
запускается сразу после подготовки сообщения по умолчанию, прежде чем пользователь его отредактирует. Первый аргумент - это имя файла с сообщением фиксации. (Второй аргумент указывает, откуда пришло сообщение.)
commit-msg
запускается после того, как сообщение о фиксации отредактировано / завершено, но до того, как фиксация состоится Если вы хотите завершить фиксацию, если сообщение коммита пользователя неверно, или изменить сообщение, вы хотите это, и единственным аргументом является имя файла с сообщением фиксации.
post-commit
запускается после фиксации. У него нет аргументов, но вы, конечно, можете получить сообщение от git log -n 1 HEAD
(возможно, с --format=format:%s%n%b
или чем-то подобным). Если все, что вы хотите сделать, это найти что-то в сообщении и уведомить об этом, вы должны использовать это.
Весь этот материал взят из справочной страницы githooks
Что касается запуска только в основной ветке, все, что вам нужно, это что-то вроде:
if [ "$(git symbolic-ref HEAD)" == "refs/head/master" ]; then
# do your stuff
fi