Как перехватить сообщение git commit и запустить действие
Я новичок в git и хочу иметь возможность перехватить сообщение коммита после отправки на origin/master и запустить скрипт bash (на сервере) на основе того, что содержит строка.
Например, если мое сообщение git commit говорит: [email] my commit message
Если сообщение фиксации содержит [email]
затем выполните указанное действие, иначе не делайте этого.
Вот пример сценария bash, который я собираюсь использовать в post-receive
крюк:
#!/bin/bash
MESSAGE= #commit message variable?
if [[ "$MESSAGE" == *[email]* ]]; then
echo "do action here"
else
echo "do nothing"
fi
По сути, все, что мне нужно знать, это имя переменной для сообщения коммита, которое нужно использовать в приведенном выше скрипте bash? Кроме того, я не уверен, является ли это правильным крючком, чтобы сделать это или нет.
2 ответа
Я думаю, что выяснил ответ на свой вопрос; переменная может быть получена с помощью git-log
команда:
git log -1 HEAD --pretty=format:%s
Итак, мой сценарий будет:
#!/bin/bash
MESSAGE=$(git log -1 HEAD --pretty=format:%s)
if [[ "$MESSAGE" == *\[email\]* ]]; then
echo "do action here"
else
echo "do nothing"
fi
Я надеюсь, что это может помочь любому, кто ищет ответ.