本质:git cz 相当于是一个对于 git commit 的提交命令的加强版
作用:使 git commit 规范化提交
安装:
第一步:
安装 Commitizen (Commitizen是一个格式化commit message的工具,git cz 是依赖于Commitizen )
npm install -g commitizen
hint:上述安装出错,可尝试通过以管理员身份运行 Windows PowerShell 安装。
第二步:
安装changelog,生成changelog的工具
npm install -g conventional-changelog conventional-changelog-cli
第三步:
在自己的项目目录下进行配置 (配置出现问题可以尝试使用管理员身份运行或者在结尾加上 --force 字段)
commitizen init cz-conventional-changelog --save-dev --save-exact
到这里我们就完成git cz的安装了。第一步和第二步每台设备(台式机,笔记本)只需要操作一次就可以了,第三步每个项目拉取下来都要操作一次。
最后就可以使用git cz代替git commit来提交专业的commit了。

使用
commit message 提交后的记录格式如下
<type>(<scope>): <subject>
//例:<feat>(all): 修改baseurl
提交时用git cz 出现如下:
// 其中 type 的值可以有 # .feat: 新功能 # .fix: 修复bug # .doc: 文档改变 # .style: 代码格式改变 # .refactor: 某个已有功能重构 # .perf: 性能优化 # .test: 增加测试 # .build: 改变了build工具 如 webpack换成了vite # .revert: 撤销上一次的 commit
选择好了<type> 之后,需要描述<scope>此次修改的影响范围
// scope: 用来说明此次修改的影响范围 # all: 表示影响面大,如修改了网络框架,会对整个程序产生影响 # component: 修改了组件 # module: 表示会影响某个模块 如登录模块、首页模块、用户管理模块等等 # 文件名: 修改了某个文件
然后再添加<subject> 用来简要描述本次改动
# subject: 用来简要描述本次改动,如果是bug最好带上相应的bug编号
然后其他的可以按 enter 健忽略就行!
拓展:
git cz是什么?
git cz
是一个命令行工具,通常用于替代 git commit
。它通过交互式命令行界面(CLI)来引导用户完成提交信息(commit message)的编写,从而帮助用户编写更清晰、更结构化的提交信息。
git cz
通常与 Husky 和 Commitizen 配合使用。Husky 是一个 Git 钩子管理工具,而 Commitizen 是一个用于标准化提交信息的工具。通过 Husky,你可以在执行 git commit
时自动运行 git cz
,从而确保每次提交都有符合规范的提交信息。
使用 git cz
的好处包括:
- 标准化提交信息:通过提供预定义的提交类型和范围,
git cz
可以帮助团队遵循一致的提交信息格式,从而提高代码库的可读性和可维护性。 - 自动检查提交信息:在提交信息编写过程中,
git cz
可以自动检查提交信息的格式和内容,确保它们符合预定义的规范。 - 生成变更日志:一些工具(如 Conventional Commits)可以解析符合规范的提交信息,并自动生成变更日志(changelog),从而简化文档维护工作
类似于git-cz的工具还有哪些?
类似于 git-cz
的工具,它们的主要功能是帮助开发者遵循某种提交信息规范,并且通常与 Git 集成以确保团队成员之间的代码提交保持一致性。以下是几种常见的替代品或相关工具:
1. Commitizen
- 简介:正如你提到的
git-cz
是 Commitizen 的一个命令别名,它本身就是一个用于标准化提交消息的工具。- 特点:通过交互式命令行界面引导用户输入符合特定规则(如 Conventional Commits)的提交信息。
2. Husky + Commitlint
- 简介:这是一个组合工具,
Husky
用来设置 Git hooks,而Commitlint
则负责验证提交信息是否符合预定的格式。- 特点:可以自定义规则来检查提交信息,并且可以在提交前自动运行这些检查,从而保证所有提交都遵循相同的风格。
3. semantic-release
- 简介:这个工具不仅管理提交信息格式,还能够根据提交的内容自动发布新版本和生成变更日志。
- 特点:完全自动化版本控制和发布流程,适用于那些希望减少手动干预并实现 CI/CD 流程自动化的项目。
4. cz-customizable
- 简介:这是 Commitizen 的一个可定制版本,允许更灵活地调整问题模板和答案处理逻辑。
- 特点:提供了更多的自定义选项,适合有特殊需求或者想要微调交互过程的团队。
5. commitizen-adapters
- 简介:为不同的 Git 客户端提供适配器,使得 Commitizen 可以在各种环境中使用。
- 特点:提高了工具的兼容性和易用性,特别是对于那些不习惯命令行操作的开发者来说非常有用。
6. cz-conventional-changelog
- 简介:这是 Commitizen 的默认适配器之一,专门用于创建符合 Conventional Changelog 规范的提交信息。
- 特点:简化了基于惯例的历史记录维护,有助于更好地管理和理解项目的演化历史。
7. Gitmoji-cli
- 简介:结合了表情符号和提交信息的传统文本描述,使提交更加生动有趣。
- 特点:支持使用 Emoji 表情作为提交信息的一部分,增加了沟通的趣味性和直观性。
8. Conventional Commits CLI
- 简介:直接实现了 Conventional Commits 标准的一个命令行工具。
- 特点:简单直接,专注于确保提交信息符合该标准的要求。
选择合适的工具取决于你的具体需求、团队的工作方式以及对提交信息格式的具体要求。例如,如果你需要高度定制化的提交流程,可能会倾向于选择 cz-customizable
;而如果你更关注于自动化版本管理和发布,则 semantic-release
可能更适合。
参考链接:
-
cz-cli - cz工具
-
cz-customizable - cz适配器
-
commitlint - cz校验工具
-
commitlint-config-cz - cz校验工具的校验规则
-
validate-commit-msg - cz校验工具
-
conventional-changelog - cz日志生成器
-
commit_msg - git钩子文档