it-swarm.com.ru

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.

34
user1578653

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

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

41
Asenar

Возможно, у вас нет прав для запуска файла pre-commit

Запустите в своем терминале: 

chmod +x .git/hooks/pre-commit

Спасибо @vaughan за идею

33
edi9999

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

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

1
Nilotpal

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

0
Theo