Пропустить Git совершить хуки - PullRequest
352 голосов
/ 29 августа 2011

Я смотрю на git hook, который ищет операторы print в коде Python. Если оператор print найден, он предотвращает коммит git.

Я хочу переопределить этот хук, и мне сказали, что для этого есть команда. Я не смог найти его. Есть мысли?

Ответы [ 2 ]

615 голосов
/ 29 августа 2011

Может быть (из git commit справочная страница ):

git commit --no-verify

-n  
--no-verify

Эта опция обходит хуки pre-commit и commit-msg.См. Также githooks (5) .

Как прокомментировал от Blaise , -n может иметь различную роль для определенных команд.
Например, git push -n на самом деле - толчок с пробным прогоном.
Только git push --no-verify может пропустить крюк.


Примечание: Git 2.14.x / 2.15 улучшает поведение --no-verify:

См. коммит 680ee55 (14 августа 2017) Кевин Уилфорд (``) .
(Объединено с Junio ​​C Hamano - gitster - в коммит c3e034f , 23 августа 2017 г.)

commit: пропустить сброс индекса, если отсутствует pre-commit ловушка

"git commit", используемая для удаления индекса и повторного чтения из файловой системы на тот случай, если хук pre-commit обновил его в середине;это было оптимизировано, когда мы знаем, что не запускаем хук pre-commit.

16 голосов
/ 29 августа 2011

С man githooks:

pre-commit
Этот хук вызывается git commit и может быть обойден с опцией --no-verify.Он не принимает никаких параметров и вызывается перед получением предложенного сообщения журнала фиксации и выполнением фиксации.Выход из этого скрипта с ненулевым статусом приводит к прерыванию git commit.

...