规范设计:Commit规范
2021-06-05 13:18:50摘要:一个好的 Commit Message 至关重要: 可以使自己或者其他开发人员能够清晰地知道每个 commit 的变更内容,方便快速浏览变更历史,比如可以直接略过文档类型或者格式化类型的代码变更。 可以基于这些 Commit Message 进行过滤查找,比如只查找某个版本新增的功能:git log --oneline --grep ^feat|^fix|^perf。 可以基于规范化的 Commit Message 生成 Change Log。 可以依据某些类型的 Commit Message 触发构建或者发布流程,比如当 type 类型为 feat、fix 时我们才触发 CI 流程。 确定语义化版本的版本号。比如 fix 类型可以映射为 PATCH 版本,feat 类型可以映射为 MINOR 版本。带有 BREAKING CHANGE 的 commit,可以映射为 MAJOR 版本。 Angular 规范在功能上能够满足开发者 commit 需求,在格式上清晰易读,目前也是用得最多的。 Angular 规范其实是一种语义化的提交规范(Semantic Commit Messages),所谓语义化的提交规范包含以下内容: Commit Message 是语义化的:Commit Message 都会被归为一个有意义的类型,用来说明本次 commit 的类型。 Commit Message 是规范化的:Commit Message 遵循预先定义好的规范,比如 Commit Message 格式固定、都属于某个类型,这些规范不仅可被开发者识别也可以被工具识别。 在 Angular 规范中,Commit Message 包含三个部分,分别是 Header、Body 和 Footer,格式如下: type[optional scope]: description // 空行 [optional body] // 空行 [optional footer(s)] 其中,Header 是必需的,Body 和 Footer 可以省略。在以上规范中,必须用括号 ()括起来, [] 后必须紧跟冒号 ,冒号后必须紧跟空格,2 个空行也是必需的。 在实际开发中,为了使 Commit Message 在 GitHub 或者其他 Git 工具上更加易读,我们往往会限制每行 mess…… 阅读全文