如何编写好的提交信息
简介
本文用来介绍在组件库开发的过程中,如何提交一个符合语法规则、团队约定和具有高可行性的提交信息。
接下来的操作默认读者使用
git作为代码仓库。
快速上手
1 | <type>(<scope>): <subject> |
进阶篇
其中,Header是必需的,Body和Footer可以省略。
不管是哪一个部分,任何一行都不得超过72个字符。这是为了避免自动换行影响美观。
Header
Header部分只有一行,包括三个字段: type (必需)、scope(可选)、subject(必需)
1) type
type 用于说明 commit 的类型,只允许使用下面的标识
- feat:新功能
- fix:修复一个错误
- style:与样式相关的功能和更新
- refactor:重构代码
- test:与测试相关的一切提交
- docs:与文档相关的一切提交
- chore:不包含生产代码变动的定期代码维护
- perf::与性能优化相关的
- build:与构建相关
- ci:持续集成相关的一切提交
- revert:回退代码(一般由程序自动带出)
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test、perf、build、ci、revert)在我们项目中不会放入 Change Log 中
2)scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
3) subject
subject是 commit 目的的简短描述,不超过50个字符。
- 主题和内容以一个空行分隔
- 主题行结束不用标点
- 主题行使用祈使语气
- 仅使用必要的标点符号
Body
Body 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。
1 | More detailed explanatory text, if necessary. Wrap it to |
有3个注意点。
(1)使用第一人称现在时,比如使用change而不是changed或changes。
(2)应该说明代码变动的动机,以及与以前行为的对比。
(3)应该默认你的读者不了解问题的初衷。
Footer
Footer 部分提供相关文章和其它资源的链接和第三方工具的关键字
注意点
- 内容每行72个字
- 永远不要认为大家都知道或理解最初的问题是什么,尽可能添加他的描述
- 确保你的代码新人也能快速理解
- 遵循团队的提交约定
参阅
Commit message 和 Change log 编写指南 - 阮一峰的网络日志
GitHub - conventional-changelog/commitlint: 📓 Lint commit messages