提交规则
为了方便通过git提交记录,提取更新内容,自动生成release notes,需要统一git commit的提交规范
变更类型
变更分为以下几类:
前缀 | 意义 |
---|---|
BUG | 修复BUG,例如:修复XXX导致的崩溃,XXX的结果不符合预期等 |
NEW | 新功能,例如:添加XXX函数,添加XXX类型等 |
FIX | 行为调整,既不属于BUG也不属于NEW的一些变动,但会影响相关功能的使用,例如:XXX函数返回值类型调整;重命名XXX接口等 |
MINOR | 微小改动,以及不会影响使用者的变动,例如:整理代码;调整cicd流程等 |
提交信息编写规则
向gitlab上提交代码时,提交信息(commit-msg)应当遵循以下规则:
- 一次提交(commit)中可以有若干个
变更记录
,因此某次提交的提交信息可能是这样的:
* BUG : A problem will make driver crash.
- xxx.ptr may be nullptr.
* FIX : efun 'get_xxxxx' will return nil when failed now.
* FIX : add '/' after path get by 'get_xxxx_path'
* MINOR : remove useless return.
- in 'cmm_xxxx_xxxxx.cpp'
- 一个合格的
变更记录
看起来会是这样的:
*【类型】:【提交信息的标题】
-【可选的说明:对提交信息的一些补充说明】
- ...
-
变更记录
由 '*
'(可选)和提交类型开头,然后是':
'(可选,推荐加上)后面跟着这份提交信息的标题。 -
其中,
类型
可以是BUG/NEW/FIX/MINOR
其中之一;如果认为只有标题难以说明,可以另起一行以 '-
' 开头,进行补充。 -
如果认为某次变更非常重要,可以在类型前加 '
!
','!
' 的数量越多,说明这份变动越重要(目前最多两个,超过两个的等于两个):
* !BUG : fix a very big bug.
* !!FIX: API changed: old one will cause crash!
- 变更的重要程度影响其在Release-Note上的排序权重(也会影响颜色XD)