Использовать ловушку git's prepare-commit-msg во время интерактивной перебазировки

В монорэпо lerna/yarn мы используем commitizen а также cz-conventional-changelog управлять релизами. Мы используем husky фиксировать сообщения в commit-msg подключи и запусти обязательство кли в prepare-commit-msg крюк:

  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
      "pre-commit": "lint-staged",
      "prepare-commit-msg": "exec < /dev/tty && yarn commit --hook || true"
    }
  },

Это прекрасно работает, пока перебазирование не требуется, однако, пока наша команда все еще изучает веревки, нам часто нужно перебазировать ветви функций, чтобы исправить сообщения фиксации.

git rebase --interactive origin/master

Во время выполнения ребаз, если я выберу reword Команда, я смогу отредактировать сообщение коммита в моем редакторе, но коммитиз не будет запущен, другими словами, ничто не мешает нам фиксировать плохие коммит сообщения.

Несмотря на то, что мы делаем lint commit сообщения в CI, я бы предпочел вообще избежать этой проблемы, принудительно используя мастер CLI на всех этапах.

Вопрос:

Могу ли я настроить git для использования prepare-commit-msg крюк во время перебазирования reword операции?

1 ответ

git rebase работает pre-rebase а также post-rewrite крючки. Я сомневаюсь, что это работает какие-либо другие крючки.

Я думаю, что вы можете использовать git rebase --execзапускать скрипт проверки после каждого повторного принятия. Любой код ошибки приостанавливает процесс перебазирования.

Другие вопросы по тегам