git commit 规范
在之前项目中已经开始使用 Git 作为版本控制工具了,但是在使用过程中较为随意,并没有注意规范问题,借此机会简单总结一下 git commit 时的 message(-m) 的编写。
仍需要说明的一点事 message 的编写本身并没有强制规范,因此以何种格式编写并非绝对,但是使用统一的规范有助于提高开发效率,特别是在协作的过程中;借助一些自动化工具也能够对文档编写起到辅助作用。
使用 Commitizen 辅助编写
Commitizen 可以辅助用户规范化 Git 的提交信息,它提供了一种交互式的方式来生成符合约定格式的提交信息,简化编写过程。这里提供一种使用 Angular 规范的方式。
安装与配置
使用 Commitizen 需要准备 Node.js 和 npm 环境,在此略过。
在命令行中键入以下命令进行全局安装:
npm install -g commitizen
在需要使用该工具的项目根目录下键入以下命令进行初始化:
commitizen init cz-conventional-changelog --save-dev --save-exact
之后在需要使用 git commit 时只需要执行 git cz
即可。
注意,Commitizen 是基于 Node.js 的,因此配置结束后会在根目录生成:
node_modules
package-lock.json
package.json
如果使用 git 时不希望对这三个文件进行追踪,则需要在根目录创建一个 .gitignore
文件,文件内容为:
node_modules
package*.json
使用方法
在键入 git cz
之后 Terminal 便进入了一个交互程序,根据提示可以快速创建一个符合规范的 git commit message。
这里作为实验随便写了一下:
基本的内容为:
- 选择本次修改的类型(修复bug、增加特性等等)
- 本次修改的影响范围
- 关于修改的短描述
- 关于修改的长描述
- 其他
简(wo)洁(bi)起(jiao)见(lan),这里不做详细介绍,具体可见参考资料 2 。
生成 Change Log
符合规范的 commit message 可以被快速解析,随后生成 change log。
首先安装 conventional-changelog-cli,(同样需要 Node.js 和 npm 环境)。
npm install -g conventional-changelog-cli
随后在项目目录下键入:
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
其中的 CHANGELOG.md 为目标文件名,可以根据需要进行修改。
git commit 频率
此前虽然也是遵循完成一个功能提交一次的基本原则,当往往是修改了许多小功能后才进行提交。
更正确的操作应该是修复或者完成一个小功能后就进行 commit,这样可以让项目更容易管理和追踪。