目前规范使用较多的是引用或衍生 Github Angular开发中<提交信息准则>章节(Commit Message Guidelines).以下为规范译文:
关于如何格式化git commit消息,我们有非常精确的规则。这样会有更具可读性的消息,在查看项目历史记录时易于遵循。而且,我们使用git commit消息生成AngularJS更改日志。
可以使用典型的git工作流程或使用CLI向导(Commitizen)添加提交消息格式。要使用该向导,yarn run commit
请在对git进行更改后在终端中运行。
提交消息格式
每个提交消息均由信息头(header),正文(body)和页脚(footer)组成。信息头(header)具有一种特殊的格式,包括type(类型),scope(范围)和subject(主题):
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
所述信息头(header)是必须的,而信息头范围(scope)的是可选的。
提交消息的任何一行都不能超过100个字符!这使得该消息在GitHub以及各种git工具中更易于阅读。
Revert
如果提交还原了先前的提交,则应以开头revert:
,后跟还原的提交的标头。在正文中应该说:This reverts commit <hash>.
,其中哈希是要还原的提交的SHA。
类型(type)
必须为以下之一:
- feat:一项新功能(feature)
- fix:一个bug修复
- docs:仅文档更改
- style:风格,不影响代码含义的更改(空白,格式,缺少分号等)
- refactor:重构,既不修正错误也不增加功能的代码更改
- perf:改进性能的代码改动
- test:添加缺失或更正现有测试
- chore:更改构建过程或辅助工具和库,例如文档生成
范围(scope)
范围可以是指定提交更改位置的任何内容。例如$location
, $browser
,$compile
,$rootScope
,ngHref
,ngClick
,ngView
,等...
当更改影响的范围不止一个范围时,可以使用*(星号)标识。
主题(Subject)
主题简要描述了更改:
- 使用祈使句式和现在时:“change”而不是“changed”或“changes”
- 不要大写第一个字母
- 末尾没有点(。)
正文(Body)
就像在主题中一样,使用祈使句式现在时态:“change”而不是“changed”或“changes”。正文应包括改变的动机,并将其与以前的行为进行对比。
页脚(Footer)
页脚应包含有关Breaking Changes的所有信息,也是参考此提交关闭的GitHub问题的位置 。
重大更改应以BREAKING CHANGE:
带有空格或两个换行符的单词开头。然后,将其余的提交消息用于此目的。
详细说明可以在本文档中找到。