Git commit 规范落地指南:Angular 提交风格 + husky 钩子强制校验
·
Git Commit 规范落地指南:Angular 提交风格 + Husky 钩子强制校验
一、Angular 提交风格规范
Angular 风格要求提交信息包含**类型(type)、作用域(scope)、主题(subject)**三部分,格式如下:
<type>(<scope>): <subject>
其中:
- 类型(type):必填,表示提交性质,常用值:
feat:新功能fix:修复问题docs:文档变更style:代码格式调整refactor:重构代码test:测试相关chore:构建/依赖变更
- 作用域(scope):可选,说明影响范围(如模块名)
- 主题(subject):必填,简洁描述变更,不超过 50 字符
示例:
feat(user): 新增邮箱验证功能
fix(auth): 修复登录令牌过期问题
二、Husky 钩子强制校验
通过 Husky 在 commit-msg 钩子触发校验,确保提交符合规范:
步骤 1:安装依赖
npm install husky @commitlint/cli @commitlint/config-conventional --save-dev
步骤 2:初始化 Husky
npx husky install
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
步骤 3:创建配置文件
新建 .commitlintrc.js:
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore'
]],
'subject-max-length': [2, 'always', 50]
}
};
步骤 4:验证配置
尝试提交非法信息将触发拦截:
git commit -m "add new feature" # 被拦截:缺少类型前缀
git commit -m "feat: 添加用户管理系统" # 通过校验
三、工作流示例
graph LR
A[git commit] --> B{Husky 钩子}
B -->|校验通过| C[提交成功]
B -->|校验失败| D[拒绝提交]
四、高级配置建议
- 自定义规则:在
.commitlintrc.js中扩展规则:rules: { 'scope-case': [2, 'always', 'lower-case'], // 作用域强制小写 'body-max-line-length': [2, 'always', 100] // 正文每行限长 } - 自动生成 CHANGELOG:配合
standard-version工具:npx standard-version --release-as minor
注意事项:
- 首次安装后执行
npm set-script prepare "husky install"确保协作同步- 团队需统一约定
scope命名规范(如模块名)- 可通过
git commit --no-verify临时绕过校验(慎用)
通过此方案,可确保团队提交信息清晰可追溯,提升代码维护效率。
更多推荐
所有评论(0)