Git Commit 规范
在团队协作中,Git 是最常用的版本控制工具之一,它的强大之处在于能够记录代码的版本变化,并且能够方便地在多个开发者之间共享代码。为了让团队中的每个成员都能够更好地了解代码的变化,以及方便地查找和回滚代码,我们需要遵守一定的 Git Commit 规范。【Git 指北 - 常用指令】
规范的好处:
- 增强可读性:规范的 Git Commit 提交记录能够使代码的变化更加明确和易读,团队成员可以更快速地了解代码的变化,提高沟通效率。
- 方便维护:规范的 Git Commit 提交记录使得回滚代码变得更加容易,同时也能够更加方便地进行代码审查和维护。
- 提高代码质量:良好的 Git Commit 规范能够促使开发者编写更加规范化的代码,减少不必要的代码重构和修改。
规范内容
一个规范的 Git Commit Message 通常包含一下内容:
1 | <type>(<scope>): <subject> |
- 类型(type):用于说明 commit 的类别。
- 范围(scope):用于说明 commit 影响的范围,比如更改了哪个文件、哪个函数等。
- 主题(subject):简短描述本次 commit 的内容,不超过 50 个字符。
- 描述(body):对本次 commit 进行详细的描述,可以分成多行。
- 备注(footer):关联 issue 问题链接编号等;
Type | 描述 |
---|---|
feat | 新增特性 (feature) |
fix | 修复 Bug(bug fix) |
docs | 修改文档 (documentation) |
style | 代码格式修改(white-space, formatting, missing semi colons, etc) |
refactor | 代码重构(refactor) |
perf | 改善性能(A code change that improves performance) |
test | 测试(when adding missing tests) |
build | 变更项目构建或外部依赖(例如 scopes: webpack、gulp、npm 等) |
ci | 更改持续集成软件的配置文件和 package 中的 scripts 命令,例如 scopes: Travis, Circle 等 |
chore | 变更构建流程或辅助工具(比如更改测试环境) |
revert | 代码回退 |
其中,类型和主题是必须的,其他选填;示例:
1 | feat(views): Add ErrorPage component |
1 | feat(登录页): 增加 Google 登录方式 |
commitizen 插件
为了更加方便地遵守 Git Commit 规范,我们可以使用 commitizen 插件。commitizen 是一个专门用于规范化 Git Commit 记录的工具,它可以在提交代码时帮助我们生成符合规范的 Git Commit 记录。
全局安装
安装
1 | npm install -g commitizen |
初始化:选择 cz-conventional-changelog
这个预设初始化,它与我们前面介绍的 Git Commit 规范一致。
1 | commitizen init cz-conventional-changelog --save-dev --save-exact |
使用:用 git cz
来代替 git commit
命令来提交代码。
1 | git cz |
项目安装
安装:项目根目录下,安装命令。
1 | npm install commitizen -D |
初始化:利用 npx
执行 commitizen
命令中使用 cz-conventional-changelog
预设,在项目中初始化;
1 | npx commitizen init cz-conventional-changelog --save-dev --save-exact |
使用:用 npx cz
来代替 git commit
命令来提交代码。
1 | npx cz |
扩展:可在
package.json
的scripts
中添加命令来npm run
执行;
1 | { |
提交代码;
1 | npm run commit |
使用指南
执行 cz
命令提交代码时,commitizen 会在终端中发起如下会话,根据提示选择合适的type,填写scope、subject等;
1 | # 选择type,本次 commit 的类型; |