引子
在 github 上逛逛就可以发现,其提交的 commit 都有一定格式,工作中也有相应的规定,时间长了就能体会到其中的好处。这种约束是一种良好的实践。抽出一些时间,更详细的了解相关的资料,然后做了一些实践和总结。
规范 Commit 的好处
- 提供更明确的历史信息,方便判断提交目的和浏览
- 可以过滤某些不必要的提交,方便快速查找信息
- 自动化生成 Changelog
- 向同事、公众与其他利益关系人传达变化的性质
- 基于提交的类型,自动决定语义化的版本变更
以上的好处,个人认为要有一个大的前提,就是每一个提交,尽量保证其目的单一性,比如说几个 bug 看似类似,就一次性修改提交。这样做,让 commit 的信息变的复杂化,阅读不方便,也容易让人想到一些不必要的关联性。
Commit 的格式
找了几个 start 较多的库,看看提交的格式。
网上推荐的写法是第 2 和 3 种,也就是 Angular 规范,并有配套的工具。有一个文档对 commit 的格式要求有个描述叫约定式提交。下面就根据 Angular 规范和对应文档,看看详细的说明。
每个 commit message 包含一个 header,body 和 footer。header 有一个特殊的格式包含有 type,scope 和 subject:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
header、body、footer 之间都要空一行,header