优雅提交 Git Commit Message
commit message 是开发的日常操作, 一个优秀的message不仅有助于他人 review, 还可以有效的输出 CHANGELOG, 对项目的管理实际至关重要, 但是实际工作中却常常被大家忽略,希望通过本文, 能够帮助大家规范 commit message 的书写
Message 规范
那么如何能优雅而又不失体面的提交你的代码呢?其实我们的
git commit message
是应该具备一些规范的。目前规范用的比较多的是 Angular 团队的规范
message 样例:
<type>(<scope>): <subject> |
Type:必须是下列之一
- feat:一个新功能
fix:bug修复
- docs:编辑文档
- style:不影响代码含义的更改(空格、格式、缺少分号等,不是css的更改)
- refactor:既不修复bug也不添加特性的代码更改
- perf:提高性能的代码更改
- test:添加缺失的或纠正现有的测试
- chore:对构建过程或辅助工具和库(如文档生成)的更改
Subject:主题包含对变更的简洁描述
Body:具体的修改内容,可以包括与之前的对比
Footer:通常是 BREAKING CHANGE 或修复的 issue 链接
规范工具
简介
commitizen git commit 格式化工具, 为我们提供标准化的 commit 信息。 帮助我们统一项目commit , 便于信息的回溯或日志的生成。# commit message 格式
commitizen 只是提供一个commit 格式化或交互工具, 最终需要输出符合 commit 规则的信息给 git, 所以需要线了解 commit 格式规则
安装
npm install -D commitizen cz-conventional-changelog |
package.json中添加
"scripts": { |
自定义 Adapter
如果 Angular 的规范不符合我们的实际,同样我们也可以通过 cz-customizable 定制一套符合自己或者团队的规范。
npm install -D cz-customizable |
同时package.json需要修改
"config": { |
之后对应项目目录下创建 .cz-config.js 文件,用来维护自己的格式
官网中有对应的样例配置文件:cz-customizable/cz-config-EXAMPLE.js at master · leoforfree/cz-customizable · GitHub
校验 Message
工具:
可以做到如果不符合校验规范,就会直接拒绝 commit 请求
安装
# Angular 团队的规范 |
配置文件
在项目目录下创建配置文件 .commitlintrc.js
Angular 团队的规范
module.exports = { |
自定义规范
module.exports = { |
Husky
在做前端工程化时husky可以说是一个必不可少的工具。husky可以让我们向项目中方便添加git hooks。
官方链接:typicode/husky: Git hooks made easy 🐶 woof! (github.com)
安装
npm install -D husky |
配置
package.json中添加:
"husky": { |
或者在 .huskyrc 文件中
{ |