Есть ли способ пропустить только крючок фиксации-msg

#git #github #git-commit #pre-commit-hook

Вопрос:

Я поставил галочку для сообщения о фиксации в крючке commit-msg, который я иногда хочу пропустить. Я знаю, что git commit --no-verify для этой задачи есть, но это также пропускает крючок предварительной фиксации. Есть ли способ пропустить только крючок commit-msg, а не предварительную фиксацию?

Ответ №1:

Нет, но также и да:

  • Git не предоставляет механизма для этого.
  • Но Git не пишет крючки фиксации. Вы пишете крючки фиксации.

Итак, напишите свой крючок commit-msg, чтобы он проверял наличие какой-либо ручки управления: «если ручка управления установлена в одну сторону, проверьте сообщение о фиксации; если она установлена в другую сторону, просто примите сообщение о фиксации».

Теперь ваша задача-выбрать ручку управления и убедиться, что она установлена правильно в нужное время. Одной из очевидных возможностей является простая переменная окружения:

 $ SKIP_MESSAGE_CHECK=yes git commit -m "silly message"
 

(предполагая оболочку в стиле sh/bash; используйте env SKIP_MESSAGE_CHECK=yes ... при необходимости).