git commit日志规范

一、作用

编写格式化的 commit message 能够大大提高代码的维护效率。

比如:

  • 可以提供更多的历史信息,方便快速浏览;
  • 可以过滤某些 commit(比如文档改动),便于快速查找信息;
  • 可以直接从 commit 生成 Change log

二、Commit message 的格式

每次提交,Commit message 都包括三个部分:Message header,Message body 和 Message footer。

< type >(< scope >): < subject >    //header内容
// 空一行
< body >   //body内容
// 空一行
< footer_msg >    //footer内容

其中,Header 是必需的,Body 和 Footer 可以省略。
不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。

type

type 用于说明 commit 的类别。

  • feat A new feature
  • fix A bug fix
  • docs Documentation only changes
  • style Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • refactor A code change that neither fixes a bug nor adds a feature
  • perf A code change that improves performance
  • test Adding missing tests or correcting existing tests
  • build Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
  • chore Other changes that don't modify src or test files
  • revert Reverts a previous commit

scope

scope 用于说明 commit 影响的范围,比如数据层、控制层、视图层、具体模块等等,视项目不同而不同。

subject

subject 是 commit 目的的简短描述,不超过50个字符。

body

Body 部分是对本次 commit 的详细描述,可以分成多行。

BREAKING CHANGE,用来描述当前 commit 与上一个版本不兼容的地方。
Issue,用来描述当前 commit 针对的某个issue。

三、举例

feat($browser): onUrlChange event (popstate/hashchange/polling)

Added new event to $browser:
- forward popstate event if available
- forward hashchange event if popstate not available
- do polling when neither popstate nor hashchange available

Breaks $browser.onHashChange, which was removed (use onUrlChange instead)

fix($compile): couple of unit tests for IE9

Older IEs serialize html uppercased, but IE9 does not...
Would be better to expect case insensitive, unfortunately jasmine does
not allow to user regexps for throw expectations.

Closes #392
Breaks foo.bar api, foo.baz should be used instead
feat(directive): ng:disabled, ng:checked, ng:multiple, ng:readonly, ng:selected

New directives for proper binding these attributes in older browsers (IE).
Added coresponding description, live examples and e2e tests.

Closes #351
posted @ 2026-02-03 08:44  ttkwzyttk  阅读(3)  评论(0)    收藏  举报