一、前言

日常开发中,保持良好的代码规范有利于提高项目的质量。而指定并遵守 git commit 的使用规范,则有利于提高项目的管理效率。

二、提交格式

在git add后,需要执行git commit进行提交,如、约定中应添加对应的描述信息,即通过:git commit -m 进行提交
提交格式如下:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

type表示提交类别,scope表示修改范围,subject表示标题行, body表示主体描述内容。
表示为空行,不填写任何内容

1、type说明

type 是 commit 的类别,只允许以下几种标识

feat: 添加新特性
fix: 修复bug
docs: 文档改变
style: 代码格式改变,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复bug
perf: 优化相关,比如提升性能、体验
test: 增加测试代码
chore: 改变构建流程、或者增加依赖库、关联包升级、工具等
revert: 回滚到上一个版本
2、scope说明【可选】

非必填(建议填写),scope用于说明 commit 影响的范围,建议填写影响的功能模块。
如果你的修改影响了不止一个scope,你可以使用*代替。

3、subject说明

必填, commit 目的的简短描述,不得超过50个字符。
推荐以动词开头,如: 设置、修改、增加、删减、撤销等
使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号

4、body说明【可选】

非必填(建议填写),可描述当前修改的行为详细信息或修改的目的。

5、footer说明

非必填,一般用于描述BREAKING CHANGE,在项目开发中一般不需要填写,组件研发的工程需要填写。
Footer 部分只用于两种情况。
(1)不兼容变动
如果当前代码与上一个版本不兼容,则 Footer 部分以 BREAKING CHANGE 开头,后面是对变动的描述、以及变动理由和迁移方法。
BREAKING CHANGE: 提升依赖版本,不再支持12.0.0一下版本
(2)关闭 Issue
如果当前 commit 针对某个issue, 那么可以在 Footer 部分关闭这个 issue,也可以一次关闭多个 issue

三、提交方式

执行git commit后,命令行进入vim编辑器,按照上述规定的格式在注释前加入要提交的commit信息。

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#       new file:   source/_posts/011.md
#
# Changes not staged for commit:
#       modified:   package-lock.json
#       modified:   package.json
#       modified:   themes/next (modified content, untracked content)
#

输入完成后,保存文件,执行 git push 命令,提交完成。