Git代码提交规范

229 阅读2分钟

Angular代码提交规范

在 Angular 规范中,Commit Message 包含三个部分,分别是 Header、Body 和 Footer,格式如下:

<type>[optional scope]: <description>
// 空行
[optional body]
// 空行
[optional footer(s)]

其中,Header 是必需的,Body 和 Footer 可以省略。在以上规范中,必须用括号 () 括起来, [] 后必须紧跟冒号 ,冒号后必须紧跟空格,2 个空行也是必需的。

Header

Header 部分只有一行,包括三个字段:type(必选)、scope(可选)和 subject(必选)。

先来看Header中的type字段

type       description
--------------------
feat       新增功能
fix        修复Bug
perf       提升代码性能的变更
style      代码格式类的变更:比如代码格式化、删除空行等
refactor   其他代码类的变更,不属于上述4类Type,例如重命名变量、代码简化等
test       新增测试用例或者更新现有测试用例
ci         持续集成或者部署相关的变更
docs       文档的更新
chore      其他类型,比如构建流程、依赖管理或者辅助工具的变动等

如何确定commit的type呢?可以通过下面这张图进行确定:

image.png

接下来,我们说说 Header 的第二个字段 scope

scope 是用来说明 commit 的影响范围的,它必须是名词。显然,不同项目会有不同的 scope。在项目初期,我们可以设置一些粒度比较大的 scope,比如可以按组件名或者功能来设置 scope;后续,如果项目有变动或者有新功能,我们可以再用追加的方式添加新的 scope。

最后,再说说 subject。

subject 是 commit 的简短描述,必须以动词开头、使用现在时。比如,我们可以用 change,却不能用 changed 或 changes,而且这个动词的第一个字母必须是小写。通过这个动词,我们可以明确地知道 commit 所执行的操作。此外我们还要注意,subject 的结尾不能加英文句号。

Body

Header 对 commit 做了高度概括,可以方便我们查看 Commit Message。那我们如何知道具体做了哪些变更呢?答案就是,可以通过 Body 部分,它是对本次 commit 的更详细描述,是可选的。

Body 部分可以分成多行,而且格式也比较自由。不过,和 Header 里的一样,它也要以动词开头,使用现在时。此外,它还必须要包括修改的动机,以及和跟上一版本相比的改动点。

Footer

Footer 部分不是必选的,可以根据需要来选择,主要用来说明本次 commit 导致的后果。在实际应用中,Footer 通常用来说明不兼容的改动和关闭的 Issue 列表。