Git pre-commit hook не работает в windows

Я только начинаю смотреть на крючки Git, но я не могу заставить их работать.

Я настроил локальный репозиторий, поэтому теперь есть '.каталог git в моей папке проекта. Я добавил '.cmd ' файл в C:/path/to/my/project/.каталог git/hooks с именем 'pre-commit.cmd'. Вот содержание этого файла:

echo "HOOK RUNNING"
echo. 2>C:/path/to/my/project/.git/hooks/EmptyFile.txt

Это должно повторять текст "HOOK RUNNING" и создавать пустой текстовый файл в этом каталоге. Однако, если я фиксирую изменения через свою IDE (NetBeans) или использовать Git Bash для фиксации, ни один из них не запускает мой крюк предварительной фиксации, поскольку файл не создается.

Я понимаю, что все, что вам нужно сделать, чтобы запустить крючок, это добавить исполняемый файл с именем крючка (как я это сделал). Я делаю что-то не так?

Примечание: это на ПК с Windows 7.

4 ответов


как насчет названия вашего крючка pre-commit (без расширения) ?

EDIT: и добавить #!/bin/sh в первой строке или #!/bin/bash (подсказали в комментариях)


у вас, вероятно, нет разрешений для запуска

выполнить в терминале:

chmod +x .git/hooks/pre-commit

спасибо @vaughan за предоставление идеи


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

Это сработало для меня: D


в моем случае, где я сделал npm install & случайно удалены .git, npm install pre-commit --save работала