格式化的Commit message有几个好处:
- 提供更多的历史信息,方便快速浏览
- 可以过滤某些commit(比如文档改动),便于快速查找信息。
- 可以直接从commit生成Change log。
每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
scope
scope用于说明 commit 影响的范围,比如LiteOS kernel的core修改影响全部则填写all,如果只修改stm32f411的则填写stm32f411。
subject
subject是 commit 目的的简短描述,不超过50个字符。
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写, 结尾不加句号(.)
有两个注意点。
使用第一人称现在时,比如使用change而不是changed或changes。
应该说明代码变动的动机,以及与以前行为的对比。
Footer 部分只用于两种情况。
如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。
关闭 Issue
如果当前 commit 针对某个issue,那么可以在 Footer 部分关闭这个 issue 。
Closes #16, #24, #92
更详细的commit规则请参考原始的规范说明