倒霉狐狸的博客
我们是一群因技术而生为技术而死的人,短暂的生命容不下我们拥有太多的美好,所以我们珍惜每一秒的时光...
Git commit格式详解

我们在使用git进行版本控制的时候,commit的格式是有要求的。

我们可以先去看一些顶级项目他们的commit的格式是怎样的。

angular在github上的commit信息

我们可以发现 commit都有一些前缀,比如说

feat

test

chore

fix

refactor

docs

现在我们来讲解git commit信息的格式

Commit Message 格式

():

<空行>

<空行>

上面是一次Commit后Message格式规范,分成标题,内容详情,结尾三个部分,各有各的用处,没有多余项。

头部即首行,是可以直接在页面中预览的部分,入上面图中所示,一共有三个部分,,,含义分别如下

Type

feat:新功能(feature)

fix:修补bug

docs:文档(documentation)

style: 格式(不影响代码运行的变动)

refactor:重构(即不是新增功能,也不是修改bug的代码变动)

test:增加测试

chore:构建过程或辅助工具的变动

Scope

用来说明本次Commit影响的范围,即简要说明修改会涉及的部分。这个本来是选填项,但从AngularJS实际项目中可以看出基本上也成了必填项了。

Subject

用来简要描述本次改动,概述就好了,因为后面还会在Body里给出具体信息。并且最好遵循下面三条:

以动词开头,使用第一人称现在时,比如change,而不是changed或changes

首字母不要大写

结尾不用句号(.)

Body

body里的内容是对上面subject里内容的展开,在此做更加详尽的描述,内容里应该包含修改动机和修改前后的对比。

Footer

footer里的主要放置不兼容变更和Issue关闭的信息

还有就是如果commit的信息不符合格式我们可以启动.git/hooks/pre-commit.sample文件,可以根据自己的commit需求的格式来编写hooks脚本来执行客户端验证