git hooks bash - получение сообщения о коммите - PullRequest
5 голосов
/ 23 июля 2010

Я пишу git hook, чтобы запустить коммит в основной ветке. Мне нужно это проанализировать и найти какой-нибудь текст в сообщении коммита. Как мне сослаться на сообщение коммита в моем скрипте bash?

Также мне хотелось бы знать, как запускать ловушку только при фиксации основной ветки. поэтому разработчики могут отменять локальные коммиты и фиксировать в основной ветке, когда они исправили ошибку или что-то еще

Пожалуйста и спасибо.

Ответы [ 2 ]

5 голосов
/ 06 ноября 2013

С помощью следующей команды:

cat $1

напечатает ваше сообщение о коммите в commit-msg

4 голосов
/ 24 июля 2010

Ответ немного зависит от того, что вы пытаетесь сделать с сообщением фиксации. Вы можете спросить о трех крючках:

  • 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...