Крюк после фиксации не работает - PullRequest
39 голосов
/ 23 февраля 2011

Мой пост-коммит не работает после git.Я проверил, что ловушка работает, если я просто запускаю ее из терминала.Код в хуке:

#!/bin/sh
#.git/hooks/post-commit
# An example hook script that is called after a successful
# commit is made.
#
# To enable this hook, rename this file to "post-commit".

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

Я переименовал файл для пост-фиксации в ./.git/hooks/, и права доступа -rwxr-x-r-x, поэтому я не уверен, почему это не такработа.

Ответы [ 3 ]

178 голосов
/ 08 января 2013

Я оставлю это здесь как ответ, потому что я наткнулся на свой собственный ответ, когда мой хук после фиксации не работал:

chmod +x .git/hooks/post-commit

Вероятно, относится к любому виду крючков. На самом деле, вероятно, относится к любому виду сценария.

26 голосов
/ 23 февраля 2011

Попробуйте поместить несколько эхо-строк до и после строки perl, например:

echo "post-commit started"
perl ...........
echo "post-commit finished"

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

git commit

вы должны увидеть

post-commit started
post-commit finished

К концу вашего вывода.

15 голосов
/ 07 декабря 2016

Мой скрипт после фиксации не вызывался, потому что:

Я назвал скрипт post-commit.sh, а не просто post-commit.

Чтобы включить скрипт подключения, поместите файл в подкаталог hooks вашего каталога .git с соответствующим именем (без расширения) и исполняемый файл.С этого момента он должен называться.Мы рассмотрим большинство основных имен хуков здесь. См. Git-scm

Не уверен, почему у меня в голове хукам нужно расширение файла bash.

Я также не осознавал скрипты ловушек не может иметь расширения файлов. Например,

Если вы хотите использовать в комплектескрипты хуков, вам придется их переименовывать;их имена файлов заканчиваются на .sample

Надеюсь, это кому-нибудь поможет.

...