commit规范使用gitmoji全流程 cz-customizable+commitlint+husky+conventional-changelog

本文介绍了如何创建和遵循Gitmoji Commit Message规范,使用cz-customizable自定义Commitizen插件,通过commitlint进行提交信息校验,利用husky自动化执行校验,并通过conventional-changelog生成变更日志。这一系列操作旨在提升代码提交的质量和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


  1. 创建 git 仓库 git init
  2. git 忽略规则 .gitignore : node_modules
  3. 代码

1. Gitmoji Commit Message 规范


  • 格式:
<emoji> <type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • 例子:
✨ feat(blog): add comment section

2. 书写 Commit


  • cz-customizable
    可自定义的 Commitizen 插件(或独立实用程序),可帮助实现一致的提交消息

  • 安装

npm i -D cz-customizable
  • 配置
    根目录创建 .cz-config.js
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
}
  • 将新脚本添加到您的 package.json
"scripts" : {
  ...
  "commit": "git add . && cz-customizable"
}
  • 使用 npm run commit 代替 git commit

3. 校验 commit


  • commitlint

检查 commit 是否符合某种规范的校验工具

  • 安装
npm i -D @commitlint/cli commitlint-config-git-commit-emoji commitlint-config-cz
  • 配置
    根目录创建 commitlint.config.js
module.exports = {
  extends: ['git-commit-emoji', 'cz']
}
  • husky
    针对 git 流程自动执行 commitlint

  • 安装

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. 生成日志


  • conventional-changelog
    可以根据项目的 commit 和 metadata 信息自动生成 changelogs 和 release notes 的系列工具。

  • 安装

npm i -D conventional-changelog-cli conventional-changelog-gitmoji-config
  • 将新脚本添加到您的 package.json
"scripts" : {
  ...
  "changelog": "conventional-changelog -p gitmoji-config -i CHANGELOG.md -s"
}
  • 运行 npm run changelog 生成日志

参考文章


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值