Как вручную запустить хук предварительной фиксации git, не пытаясь совершить фиксацию?

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


person callum    schedule 17.01.2018    source источник


Ответы (3)


Просто запустите скрипт pre-commit через оболочку:

bash .git/hooks/pre-commit
person Ilayaraja    schedule 17.01.2018
comment
О, это так просто. Также кажется, что они являются непосредственно исполняемыми, поэтому вы можете сделать ./.git/hooks/precommit - person callum; 17.01.2018
comment
Да, это также непосредственно исполняемый файл. - person Ilayaraja; 17.01.2018
comment
Это не обнаружит/исправит все проблемы во всех существующих файлах - для этого вам нужен pre-commit run --all-files, см. мой ответ здесь. - person javabrett; 18.03.2019
comment
Если вы обнаружите, что это ничего не делает, не забудьте git add файлы! - person Ollie; 31.12.2019
comment
@javabrett обратите внимание, что этот ответ относится не к пакету предварительной фиксации python, а скорее к собственному перехватчику предварительной фиксации git. Ваша команда не будет работать для тех, кто просто использует нативные git-хуки. - person bjrne; 03.05.2020
comment
Это идеально, также работает для любого крючка, например, для предварительного нажима! Спасибо ! - person TBG; 26.10.2020

Пакет Python для этого доступен здесь. Согласно документации по использованию:

Если вы хотите вручную запустить все хуки перед фиксацией в репозитории, запустите pre-commit run --all-files. Для запуска отдельных хуков используйте pre-commit run <hook_id>.

Итак, pre-commit run --all-files - это то, что нужно ОП.

person javabrett    schedule 17.03.2019
comment
Обратите внимание, что эта предварительная фиксация не является предварительной фиксацией git. Скорее, это пакет Python с сайта pre-commit.com, который устанавливает скрипт git pre-commit. Тем не менее, пакет python — это то, что я искал здесь, поэтому голосую за вас. - person dfrankow; 27.06.2019
comment
Альтернативный способ - указать хук перед фиксацией (в данном случае pylint), и файл необходимо проверить: pre-commit run pylint --files common/main.py - person klapshin; 07.06.2021

Просто запустите git commit. Вам не нужно ничего добавлять перед этим, поэтому в конце вы получите сообщение no changes added to commit.

person Yichun    schedule 28.04.2020
comment
По крайней мере, для меня в этом случае просто указано Skipped для всех хуков фиксации. (может зависеть от того, какой метод/способ вы используете для хуков перед фиксацией, мы используем пакет Python с именем pre-commit) - person mozzbozz; 11.01.2021