Если ваша цель - обновить само сообщение о фиксации, например, автоматически включить идентификатор JIRA или что-то подобное, вы можете использовать хук prepare-commit-msg
для изменения сообщения фиксации перед запуском редактора. Конечно, разработчик может изменить это сообщение, но я лично нашел его полезным для случаев, подобных упомянутому выше.
Если ваша цель состоит в том, чтобы исключить разработчиков, использующих git commit --no-verify
, то нет, нет способа сделать это. Если ваша цель заключается в реализации политики для кода, то это изменение либо входит в ловушку pre-receive
, либо в вашу систему CI. Вы не можете доверять тому, что что-либо будет работать в системе разработчика, потому что разработчик может изменить или удалить его.
Кроме того, реализация pre-commit
хуков для тестирования или проверки элементов является проблемой, потому что это делает его сложнее и меньше людям удобно делать небольшие исправления, чтобы они потом вместе взялись за дело. Например, я часто фиксирую изменение WIP
, когда у меня есть небольшая логическая часть, которая работает, и затем я могу откатиться, если что-то сломается. Когда я готов подать, я объединяю их вместе в логическое изменение. Я прекрасно знаю, что такие коммиты не будут соответствовать стандартам сообщений коммитов или пройдут все тесты, но они чрезвычайно полезны для временных целей.