在 lerna/yarn monorepo 中,我们使用commitizen
和cz-conventional-changelog
管理发布。我们使用husky
lint 钩子中的提交消息并在commit-msg
钩子中运行 commitizen cli 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
在运行 rebase 时,如果我选择reword
命令,我将能够在我的编辑器中编辑提交消息,但 commitizen cli 不会运行,换句话说,没有什么可以阻止我们提交错误的提交消息。
虽然我们在 CI 中执行 lint 提交消息,但我更愿意通过在所有阶段强制使用 commitizen CLI 向导来完全避免这个问题。
问题:
我可以配置 git在 rebase操作prepare-commit-msg
期间使用钩子吗?reword