git commit 使用及规范

一、前言

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

二、提交格式

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

1
2
3
4
5
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

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

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 开头,后面是对变动的描述、以及变动理由和迁移方法。

1
BREAKING CHANGE: 提升依赖版本,不再支持12.0.0一下版本

(2)关闭 Issue
如果当前 commit 针对某个issue, 那么可以在 Footer 部分关闭这个 issue,也可以一次关闭多个 issue

1
Closes #234

三、提交方式

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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 命令,提交完成。

------ 本文结束------