【前端工程化】git commit 提交规范
- 全局安装
commitizen
sudo npm install commitizen -g
- 在项目目录下,添加
cz-conventional-changelog
适配器,直接使用angular
的提交规范
commitizen init cz-conventional-changelog --save --save-exact
作用:
package.json
中的devDependencies
添加cz-conventional-changelog
依赖,并通过npm
安装依赖。package.json
中添加属性config
"config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } }
-
自定义提交说明规范
- 安装适配器
npm install cz-customizable --save-dev
- 修改第二步自动生成的配置(package.json中)
{ "config":{ "commitizen": { "path": "node_modules/cz-customizable" } } }
- 根目录下新建自定义适配器配置文件,
.cz-config.js
module.exports = { types: [ { value: "feat", name: "feat: 一个新的特性" }, { value: "fix", name: "fix: 修复一个bug" }, { value: "docs", name: "docs: 仅更新了文档" }, { value: "style", name: "style: 代码格式调整" }, { value: "refactor", name: "refactor: 重构,既不修复错误也不添加功能的代码更改" }, { value: "perf", name: "perf: 提高性能的代码更改" }, { value: "test", name: "test: 添加测试代码" }, { value: "chore", name: "chore: 构建工具,脚手架等更改" }, { value: "revert", name: "revert: 代码回退" }, { value: "WIP", name: "WIP: 正在进行的工作" } ], scopes: [ { name: "模块1" } ], messages: { type: "选择一种你的提交类型", scope: "选择一个scope(可选)", subject: "短说明:\n", body: '长说明,使用"|"换行(可选):\n', breaking: "非兼容性说明(可选):\n", footer: "关联关闭的issue,例如:#1234(可选):\n", confirmCommit: "确定提交说明?" }, allowCustomScopes: true, allowBreakingChanges: ["feat", "fix"], subjectLimit: 100 };
-
添加
commit
校验npm install --save-dev @commitlint/cli npm install --save-dev @commitlint/config-conventional
新建
commitlint.config.js
配置校验规则module.exports = { extends: ['@commitlint/config-conventional'] };
安装
huksy
=> git 钩子工具npm install husky --save-dev
在
package.json
中配置git commit
提交时的校验钩子"husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }
我在测试提交的时候,如果是先安装了依赖,再初始化
git
仓库时,提交校验失效。需要先初始化git
仓库,然后再安装依赖。 -
git 提交说明结构
结构块 | Header | Body | Footer |
---|---|---|---|
包含内容 | type(必须),scope(可选),subject(必须) | Commit 的详细描述 | 不兼容变更和关闭缺陷说明 |
格式 | (): |
各字段说明:
字段名 | 解释/可选值 |
---|---|
type | feat - 新功能 |
scope | 模块名 |
subject | 提交的简短描述 |
body | 提交的详细描述 |
footer | 关闭的ISSUE |
提交后的结果类似如下
docs(模块1): 更新文档
仅更新了README.md的文档说明
ISSUES CLOSED: #1
- 代码提交
git cz
- Changelog 生成
安装依赖
npm install conventional-changelog-cli --save-dev
修改 package.json 配置
"scripts": {
...,
"version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md"
}
生成 changelog
npm run version
生成
chagnelog
只能生成当前版本的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~