在lerna / yarn monorepo中,我们使用commitizen
和cz-conventional-changelog
来管理发布。我们使用husky
在commit-msg
钩子中提交消息,并在prepare-commit-msg
钩子中运行commitizen cli:
"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
命令,我将能够在编辑器中编辑commit消息,但是commitizen cli将无法运行,换句话说,没有什么可以阻止我们执行提交错误的提交消息。
虽然我们在CI中执行lint commit消息,但我宁愿通过在所有阶段强制使用commitizen CLI向导来完全避免此问题。
我可以将git配置为在进行基础prepare-commit-msg
操作期间使用reword
钩子吗?
答案 0 :(得分:1)
git rebase
运行pre-rebase
和post-rewrite
钩子。我怀疑它是否还会挂其他钩子。
我认为您可以在每次重新提交提交后使用git rebase --exec
运行验证脚本。任何错误代码都会暂停变基过程。