前言
- 创建 git 仓库
git init - git 忽略规则
.gitignore : node_modules - 代码
1. Gitmoji Commit Message 规范
<emoji> <type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
? feat(blog): add comment section
2. 书写 Commit
npm i -D cz-customizable
module.exports = {
types: [
{
value: ':sparkles: feat',
name: '? feat: 新功能'
},
{
value: ':bug: fix',
name: '🐛 fix: 修复bug'
},
{
value: ':tada: init',
name: '🎉 init: 初始化'
},
{
value: ':pencil2: docs',
name: '?? docs: 文档变更'
},
{
value: ':lipstick: style',
name: '💄 style: 代码的样式美化'
},
{
value: ':recycle: refactor',
name: '?? refactor: 重构'
},
{
value: ':zap: perf',
name: '?? perf: 性能优化'
},
{
value: ':white_check_mark: test',
name: '? test: 测试'
},
{
value: ':rewind: revert',
name: '?? revert: 回退'
},
{
value: ':package: build',
name: '📦? build: 打包'
},
{
value: ':rocket: chore',
name: '🚀 chore: 构建/工程依赖/工具'
},
{
value: ':construction_worker: ci',
name: '👷 ci: CI related changes'
}
],
messages: {
type: '请选择提交类型(必填)',
customScope: '请输入文件修改范围(可选)',
subject: '请简要描述提交(必填)',
body: '请输入详细描述(可选)',
breaking: '列出任何BREAKING CHANGES(可选)',
footer: '请输入要关闭的issue(可选)',
confirmCommit: '确定提交此说明吗?'
},
allowCustomScopes: true,
allowBreakingChanges: [':sparkles: feat', ':bug: fix'],
subjectLimit: 72
}
"scripts" : {
...
"commit": "git add . && cz-customizable"
}
- 使用
npm run commit 代替 git commit
3. 校验 commit
检查 commit 是否符合某种规范的校验工具
npm i -D @commitlint/cli commitlint-config-git-commit-emoji commitlint-config-cz
- 配置
根目录创建 commitlint.config.js
module.exports = {
extends: ['git-commit-emoji', 'cz']
}
npm i -D husky
npm set-script prepare "husky install"
npm run prepare
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
4. 生成日志
npm i -D conventional-changelog-cli conventional-changelog-gitmoji-config
"scripts" : {
...
"changelog": "conventional-changelog -p gitmoji-config -i CHANGELOG.md -s"
}
- 运行
npm run changelog 生成日志
参考文章
|