Я просто хочу иметь возможность запустить его, чтобы увидеть, проходит ли его код в моем рабочем дереве, без фактической попытки фиксации.
Как вручную запустить хук предварительной фиксации git, не пытаясь совершить фиксацию?
Ответы (3)
Просто запустите скрипт pre-commit
через оболочку:
bash .git/hooks/pre-commit
person
Ilayaraja
schedule
17.01.2018
О, это так просто. Также кажется, что они являются непосредственно исполняемыми, поэтому вы можете сделать
./.git/hooks/precommit
- person callum; 17.01.2018
Да, это также непосредственно исполняемый файл.
- person Ilayaraja; 17.01.2018
Это не обнаружит/исправит все проблемы во всех существующих файлах - для этого вам нужен
pre-commit run --all-files
, см. мой ответ здесь.
- person javabrett; 18.03.2019
Если вы обнаружите, что это ничего не делает, не забудьте
git add
файлы!
- person Ollie; 31.12.2019
@javabrett обратите внимание, что этот ответ относится не к пакету предварительной фиксации python, а скорее к собственному перехватчику предварительной фиксации git. Ваша команда не будет работать для тех, кто просто использует нативные git-хуки.
- person bjrne; 03.05.2020
Это идеально, также работает для любого крючка, например, для предварительного нажима! Спасибо !
- 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
Обратите внимание, что эта предварительная фиксация не является предварительной фиксацией git. Скорее, это пакет Python с сайта pre-commit.com, который устанавливает скрипт git pre-commit. Тем не менее, пакет python — это то, что я искал здесь, поэтому голосую за вас.
- person dfrankow; 27.06.2019
Альтернативный способ - указать хук перед фиксацией (в данном случае 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
По крайней мере, для меня в этом случае просто указано
Skipped
для всех хуков фиксации. (может зависеть от того, какой метод/способ вы используете для хуков перед фиксацией, мы используем пакет Python с именем pre-commit
)
- person mozzbozz; 11.01.2021