Программы
Как зафиксировать изменения git-коммита, игнорируя pre-commit hook

Как зафиксировать изменения git-коммита, игнорируя pre-commit hook

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

Надеюсь, вы понимаете, что это совет только для исключительных случаев. Если в вашем проекте поставили проверку кода pre-commit хуками, значит сделали это не просто так, а, например, для единообрация кода, соответствия code-style и т.д. Если же вы уверены, что pre-commit делает что-то не то - нужно договориться с командой, убрать правило, настроить хуки git.

Но всё же бывают ситуации, когда "терпеть нет сил" или "нужно закоммитить прямо сейчас и прямо так как есть". В этой ситуации нет смысла пересматривать правила, настраивать git и т.д. Нужно быстро и безболезненно сделать своё "тёмное дело" в обход линтеров и прочего. Но в ответ только:

$  git commit -a -m 'hot fix'
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
Flake8...................................................................Failed
- hook id: flake8
- exit code: 1

wrong-code.py:3:10: E126 continuation line over-indented for hanging indent

Тогда быстрым и дешёвым решением будет отключить проверку pre-commit hook конкретно для этого git-коммита:

$ git commit -a -m 'hot fix' --no-verify

С --no-verify проверка кода производиться не будет.

Надеюсь, вам не понадобится этот ключ git-commit. Но на всякий случай...