Commitizen
规范化你的 Git 提交信息
简介
在团队协作开发过程中,规范化的 Git 提交信息可以提高代码维护的效率,便于追踪和定位问题。Commitizen 是一个帮助我们规范化 Git 提交信息的工具,它提供了一种交互式的方式来生成符合约定格式的提交信息。
原理
Commitizen 的核心原理是通过提供一个交互式的命令行工具,引导用户按照预定义的格式填写提交信息。它使用了 Node.js 的 Inquirer.js 库来实现命令行交互,根据配置的提交信息模板,生成最终的提交信息。
安装依赖
首先,你需要安装 commitizen
和 cz-customizable
:
npm install --save-dev commitizen cz-customizable
|
配置 commitizen
在 package.json
文件中添加以下配置,以便 commitizen
使用 cz-customizable
作为适配器:
{ "scripts": { "commit": "cz" }, "config": { "commitizen": { "path": "./node_modules/cz-customizable" } } }
|
创建 .cz-config.js
文件
在项目根目录下创建一个名为 .cz-config.js
的文件,用于自定义提交信息的提示。以下是一个示例配置:
const fs = require('fs') const path = require('path') const dirs = fs.readdirSync(path.resolve(__dirname, './src/pages')) const scopes = dirs.filter(dir => !['.DS_Store', 'index'].includes(dir))
module.exports = { types: [ { value: '✨ Features | 新功能', name: '✨ Features | 新功能: 一个新功能' }, { value: '🐛 Bug Fixes | Bug 修复', name: '🐛 Bug Fixes | Bug 修复: 修复一个Bug' }, { value: '📝 Documentation | 文档', name: '📝 Documentation | 文档: 变更的只有文档' }, { value: '💄 Styles | 风格', name: '💄 Styles | 风格: 空格, 分号等格式修复' }, { value: '♻ Code Refactoring | 代码重构', name: '♻ Code Refactoring | 代码重构: 代码重构,注意和特性、修复区分开' }, { value: '⚡ Performance Impro3vements | 性能优化', name: '⚡ Performance Improvements | 性能优化: 提升性能' }, { value: '✅ Tests | 测试', name: '✅ Tests | 测试: 添加一个测试' }, { value: '🔧 Continuous Integration | CI 配置', name: '🔧 Continuous Integration | CI 配置: 开发工具变动(构建、脚手架工具等)' }, { value: '⏪ Reverts | 回退', name: '⏪ Reverts | 回退: 代码回退' }, { value: '🎫 Chores | 其他更新', name: '🎫 Chores | 其他更新: 其他更新' } ], scopes: [ 'other', ...scopes ], messages: { type: '选择一种你的提交类型:', scope: '选择一个scope (可选):', subject: '短说明:', confirmCommit: '确定提交commit吗?' }, subjectLimit: 100, skipQuestions: ['body', 'breaking', 'footer'] };
|
使用 commitizen
进行提交
现在,你可以使用 commitizen
提供的命令来提交代码:
这个命令将会启动一个交互式提示,指导你填写提交信息,从而确保提交信息符合预定义的规范。
![image-20240702182830619](/Users/zy/Library/Application Support/typora-user-images/image-20240702182830619.png)
通过以上配置,你的项目现在已经集成了 cz-customizable 和 commitizen,并且使用 commitlint 和 husky 确保提交信息的格式符合规范。这样可以帮助团队保持一致的提交信息格式,提高代码库的可读性和维护性。
”commitlint-config-cz”: “^0.13.3”, 这个是防止使用其他命令或客户端 push 上去,必须使用以上的规范才可以