Пропустить Git commit hooks

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

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

Ответ 1

Может быть (из страницы руководства git commit):

git commit --no-verify

-n  
--no-verify

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

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


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

См. коммит 680ee55 (14 августа 2017 г.) от Кевина Уилфорда ('').
(Merged by Junio C Hamano -- [TG45] -- in commit c3e034f, 23 Aug 2017)

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

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


Дави Лима указывает в комментариях, что git cherry-pick не поддерживает --no-verify.
Поэтому, если вишневый выбор запускает ловушку перед фиксацией, вам, как и в этом сообщении в блоге, нужно каким-то образом комментировать/отключать этот ловушку для продолжения вашего git cherry-pick.
Тот же процесс будет необходим в случае git rebase --continue после разрешения конфликта слияния.

Ответ 2

От man githooks:

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

Ответ 3

Я хочу сделать это, немного с git commit --amend

так что-то вроде git commit --amend --no-verify, но это просто создает новый коммит