Git hook: избавляемся от рутины

Открыл для себя магию git hook на прошлой неделе и немного прих*ел, потому что все что можно сделать через них делал каждый день руками, порой допуская ошибки.

Что такое git hook

  1. Статья на Хакере
  2. Дока на русском

Для тех кому лень читать, в кратце: они перехватывают ваши действия с гитом и по указанным в них правилам как-то реагируют.

Как помогли

На работе мы используем сервис Redmine как трекер задач. В него прикручен плагин, который чекает изменения репозитория проекта и если в коммите есть ссылка на эту таску, показывает как изменения в самой таске. Вот так

Довольно прикольно, но каждый раз писать это ручками в комменте такое-себе дело, которое легко можно автоматизировать.

Разработка ведется по git-flow и названия веток стандартизированы по типу feature/#12345-name-of-task . Из названия этой ветки мы легко может получить номер таски и добавить ее в конец тела коммита, если оно там еще не описано. Придумано — сделано

commit-msg

Небольшой скриптик, который все это делает.

Чтобы добавить его, в репозитории своего проекта замените текст из файла .git/hooks/commit-msg.sample на код из скрипта. А после переименуйте этот файл в commit-msg, это скажет гиту что этот скрипт можно использовать.

Досвидания

Like what you read? Give Anton Vlasov a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.