0

Не запускается Hook после коммита

14

Проблема: Хук post-commit не работает после выполнения git-команды

У меня есть хук post-commit, который не срабатывает после выполнения команды git. Я проверил, что сам хук работает, если запустить его напрямую из терминала. Вот код, который содержится в хуке:

#!/bin/sh
#.git/hooks/post-commit
# Пример скрипта хука, который вызывается после успешного
# выполнения коммита.
#
# Чтобы активировать этот хук, переименуйте этот файл в "post-commit".

perl -pi -e 's/([a-f0-9]+)$/'$( git rev-parse HEAD )/ ../../config/commit.git

Я переименовал файл в post-commit в директории ./.git/hooks/, и права на файл установлены как -rwxr-x-r-x, поэтому я не понимаю, почему он не срабатывает. Что может быть причиной этой проблемы и как ее решить?

3 ответ(ов)

2

Оставлю это здесь как ответ, так как наткнулся на свое собственное решение, когда мой хук post-commit не запускался:

chmod +x .git/hooks/post-commit

Это, вероятно, касается любого типа хуков. На самом деле, это, вероятно, применимо ко всем скриптам.

0

Попробуйте добавить несколько строк echo перед и после строки с Perl, как показано ниже:

echo "post-commit начат"
perl ...........
echo "post-commit завершен"

Таким образом, вы сможете подтвердить, что скрипт действительно выполняется, потому что при выполнении команды

git commit

вы должны увидеть в конце вашего вывода:

post-commit начат
post-commit завершен
0

В дополнение к приведенным здесь ответам, обратите внимание, что если вы ожидаете ввод пользователя в вашем хуке, вам необходимо перенаправить стандартный ввод на клавиатуру следующим образом (по крайней мере для bash-скрипта):

exec < /dev/tty
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь