Post Commit Hook Не Работает

мой post commit hook не работает после 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

я переименовал файл в post-commit in ./.git / hooks/ И разрешения -rwxr-x-r-x поэтому я не уверен, почему это не работает.

3 ответов


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

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

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

git commit

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

post-commit started
post-commit finished

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


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

chmod +x .git/hooks/post-commit

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


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

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

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

не уверен, почему я был в моя голова, что крючки нуждались в расширении файла bash.

Я тоже не понимаю скрипты крючком не может есть файл расширения.

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