Git commit message格式规范(推荐)
<type>(<scope>): <subject>
<BLANK LINE> 空格
<body>
<BLANK LINE> 空格
<footer>
type(必须) :
用于说明git commit的类别,只允许使用下面的标识
- feat:新功能(feature)。
- fix/to:修复bug
- docs:文档(documentation)。
- style:格式(不影响代码运行的变动)。
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)。
- perf:优化相关,比如提升性能、体验。
- test:增加测试。
- chore:构建过程或辅助工具的变动。
- revert:回滚到上一个版本。
- merge:代码合并。
- sync:同步主线或分支的Bug。
scope(可选) :
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
例如在Angular,可以是location,browser,compile,compile,rootScope, ngHref,ngClick,ngView等。
如果你的修改影响了不止一个scope,你可以使用*代替。
subject(必须) :
subject是commit目的的简短描述,不超过50个字符(超过可以再body 里进行说明)。
- 建议使用中文(感觉中国人用中文描述问题能更清楚一些)。
- 结尾不加句号或其他标点符号。
body(可选) :
改动的动机,详细描述等
footer (可选) :需求链接状态变化 (Closes #392)
这样规范git commit到底有哪些好处呢?
- 便于程序员对提交历史进行追溯,了解发生了什么情况。
- 一旦约束了commit message,意味着我们将慎重的进行每一次提交,不能再一股脑的把各种各样的改动都放在一个git commit里面,这样一来整个代码改动的历史也将更加清晰。
- 格式化的commit message才可以用于自动化输出Change log。
Examples :
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
Closes #1213242
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 #17116
参考 :
angularJS :
https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines
网友评论