Git提交信息规范Git Commit Message

Git提交信息规范Git Commit Message

目前规范使用较多的是引用或衍生  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$rootScopengHrefngClickngView,等...

当更改影响的范围不止一个范围时,可以使用*(星号)标识。

主题(Subject)

主题简要描述了更改:

  • 使用祈使句式和现在时:“change”而不是“changed”或“changes”
  • 不要大写第一个字母
  • 末尾没有点(。)

正文(Body)

就像在主题中一样,使用祈使句式现在时态:“change”而不是“changed”或“changes”。正文应包括改变的动机,并将其与以前的行为进行对比。

页脚(Footer)

页脚应包含有关Breaking Changes的所有信息,也是参考此提交关闭的GitHub问题的位置 。

重大更改应以BREAKING CHANGE:带有空格或两个换行符的单词开头。然后,将其余的提交消息用于此目的。

详细说明可以在本文档中找到。