Git日志提交规范

规范Git Commit有利于后续接手开发的人员

约定式提交规范(Conventional Commits)

https://www.conventionalcommits.org/zh-hans/v1.0.0/
原文:

1
2
3
4
5
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

译文:

1
2
3
4
5
<类型>[可选 范围]: <描述>

[可选 正文]

[可选 脚注]

类型(type)

1
2
3
4
5
6
7
8
9
10
11
feat:  类型为 feat 的提交表示在代码库中新增了一个功能(这和语义化版本中的 MINOR 相对应)。
fix:类型为 fix 的 提交表示在代码库中修复了一个 bug (这和语义化版本中的 PATCH 相对应)。
docs: 只是更改文档。
style: 不影响代码含义的变化(空白、格式化、缺少分号等)。
refactor: 代码重构,既不修复错误也不添加功能。
perf: 改进性能的代码更改。
test: 添加确实测试或更正现有的测试。
build: 影响构建系统或外部依赖关系的更改(示例范围:gulp、broccoli、NPM)。
ci: 更改持续集成文件和脚本(示例范围:Travis、Circle、BrowserStack、SauceLabs)。
chore: 其他不修改src或test文件。
revert: commit 回退。

范围(scope)
可选作用域用于说明 commit 影响的范围,比如数据层、控制层、视图层、模块名等等,视项目不同而不同。可以为提交类型添加一个围在圆括号内的作用域,以为其提供额外的上下文信息。
例如feat(order): 订单更新;涉及到多个模块可以用*代替。

Jira ID
Jira ID 可以是Jira上对应问题的ID,比如:故事ID、工单ID、任务ID、缺陷ID等,Commit Message 指定ID后,Jira会自动将提交记录与Jira问题关联,这样便于通过jira查看解决问题的代码。
例如feat(Controller): #JIRA-001 用户查询接口开发
注意使用英文冒号,冒号后面一个空格。

BREAKING CHANGE
在可选的正文或脚注的起始位置带有 BREAKING CHANGE: 的提交,表示引入了破坏性 API 变更(这和语义化版本中的 MAJOR 相对应)。 破坏性变更可以是任意类型提交的一部分。

IDEA使用Git Commit Template插件(https://plugins.jetbrains.com/plugin/9861-git-commit-template)比较方便