为什么使用约定式提交
- 自动化生成 CHANGELOG。
- 基于提交的类型,自动决定语义化的版本变更。
- 向同事传达变化的性质。
- 触发构建和部署流程。
- 让人们探索一个更加结构化的提交历史,以便降低对你的项目做出贡献的难度。
Git Message 编写指南
我们参考的是Angular 规范,同时也参考了约定式提交。
概述
提交说明的结构如下所示:
<类型(Type)>[可选的作用域(Scope)]: <描述(Subject)>
[可选的正文(Body)]
[可选的脚注(Footer)]
类型 Type 说明
- feat:新功能(feature)
- fix:表示在代码库中修复了一个 bug
- docs:文档(documentation)
- style: 格式(不影响代码运行的变动,空格,格式化,等等)
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)
- perf: 性能 (提高代码性能的改变)
- test:增加测试或者修改测试
- build: 影响构建系统或外部依赖项的更改(maven,gradle,npm 等等)
- ci: 对CI配置文件和脚本的更改
- chore:对非 src 和 test 目录的修改
- revert: Revert a commit
可选的作用域 Scope 说明
scope
用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同
描述 Subject 说明
subject
是 commit 目的的简短描述,不超过50个字符
可选的正文 Body
Body 部分是对本次 commit 的详细描述,可以分成多行
需要注意
- 使用第一人称现在时,比如使用change而不是changed或changes。
- 应该说明代码变动的动机,以及与以前行为的对比
需要注意:
- 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
- 第一个字母小写
- 结尾不加句号(.)
可选的脚注 Footer
Footer 部分只用于两种情况
- 不兼容变动: 如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法
- 关闭Issue 如果当前 commit 针对某个issue,那么可以在 Footer 部分关闭这个 issue 。也可以是多个issue。或者Jira 编号
工具使用
idea
安装插件: Git Commit Template Helper
vscode
安装插件: Git-commit-plugin For Vscode
示例
包含了描述以及正文内有破坏性变更的提交说明
fix(企业管理): 删除企业信息
因业务需要企业信息彻底删除,不做逻辑删除处理
BREAKING CHANGE: 之前是逻辑删除,现在是彻底删除,权限要严格控制
包含了可选的 !
字符以提醒注意破坏性变更的提交说明
chore!: 更新mybatis-plus版本
BREAKING CHANGE: 新版的连表查询优化策略与旧版不同,注意连表查询相关代码
不包含正文的提交说明
docs: 更改基线负荷计算说明
包含作用域的提交说明
feat(邀约): 新增 供电公司登录可对对应企业邀约
评论