欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

优化你的代码编写 - 使用 Commitizen来规范化提交流程

最编程 2024-07-27 19:21:49
...

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

上一期写了如何使用 Husky 规范开发中的代码格式,今天来看看怎么让你仓库里的 commit 也规范起来吧~

Commitizen

一、适用 Commitizen 的业务场景

每次开开心心地完成一项业务功能后,就可以提交到我们的 Git 仓库进行管理。

在 Git 中提交代码,必不可少的需要你说明在本次提交时所要备注的信息,用于说明本次更改对项目的影响。

刚刚接触 Git 的时候 commit message 写得可真是为所欲为,不然不让提交啊。大多是一段文字搞定,甚至一个空格。(手动doge)

但是到后续去检查项目时就会变得非常煎熬,且不说团队项目。自己的仓库都看不明白,还需要通过看修改的文件回想我当时到底是做了什么。。。

Commitizen 这个工具可以(强制)帮助我们养成良好的开发习惯,不管是工友还是自己都能比较清晰的理解每次的 commit 信息。

二、什么是 Commitizen?

When you commit with Commitizen, you'll be prompted to fill out any required commit fields at commit time.

Commitizen 在 GitHub 上的解释。

当你在使用 git commit 提交时,Commitizen 能够快速地帮你完成提交信息的补充。

不仅如此,Commitizen 可以帮助你的团队规范统一的 commit message。

我们来看看 Commitizen 在 npm 上的周下载量

微信图片_20211014152735.png

三、Commitizen 怎么用?

1. 安装 Commitizen

按照官方的说明,安装使用 Commitizen 需要执行下面两步。

// 1. 安装 commitizen
npm install commitizen -D

// 2. 安装和初始化 cz-conventional-changelog
npx commitizen init cz-conventional-changelog --save-dev --save-exact

2. Commitizen 的使用

安装成功以后,这意味着你可以不再使用 git commit 的方式提交你的代码。

在你执行完 git add 后,执行 npx cz 替代 git commit,commitizen 就可以一步步帮助你完成提交了:

  • 说明你本次操作修改的类型【必填】(所有类型描述写在文中最后)

你会发现这里我使用了 npm run commit,而不是cz命令,待会儿告诉你为什么

微信图片_20211015213321.png

  • 说明你本次的修改所影响的范围(视图层、数据层、控制层等等)

    微信图片_20211015213844.png

  • 简述本次的提交信息【必填

    微信图片_20211015214034.png

  • 详细描述本次的提交信息

    微信图片_20211015213958.png

  • 是否有任何重大变化【No】(根据情况选择yes/no)

    微信图片_20211015214020.png

  • 此更改是否会影响任何未解决的问题【No】(根据情况选择yes/no)

    微信图片_20211015214052.png

到这里就算是完成提交啦,你可以执行 git log 查看本次的提交记录。

微信图片_20211015214151.png

微信图片_20211015214330.png

3. 修改 Commitizen 提交指令

在package.json中添加指令"commit": "cz",之后就可以执行 npm run commit 的方式提交信息了

相比于 npx cz,更方便我们理解和记忆

微信图片_20211028205224.png

4. Commitizen 中的提交类型

类型 解释
feat 新增特性(A new feature)
fix 修复bug(A bug fix)
docs 仅包含文档的修改(Documnetation only changes)
style 修改代码格式,不影响代码逻辑(white-space, formatting, missing semi colons, ect)
refactor 重构 (refactor)
perf 提高性能的修改(A code change that improves performance)
test 添加或修改测试代码(Adding missing tests or correcting existing tests)
build 构建工具或外部依赖包的更改(Changes that affect the build system or external dependencies)
ci 持续集成的配置文件或脚本的修改(Changes to our CI configuration files and scripts)
chore 杂项(Other changes that don't modify src or test files)
revert 撤销某次提交(Reverts a previous commit)

四、参考资料

  • commitizen - npm

  • Commit message 和 Change log 编写指南 - 阮一峰的网络日志

推荐阅读