git代码提交规范

git 的提交格式化有很多好处,本文整理一套自己用的提交信息格式。

格式

提交信息包括三个部分:headerbody footer

1
2
3
<header></header>
<body></body>
<footer></footer>

其中,header 是必需的,body 和 footer 可以省略。

Header 部分只有一行,包括俩个字段:type(必需)和 subject(必需)。

1
<type>: <subject>

type

type 用于说明 commit 的类别,可以使用如下类别:

  • feat:新功能(feature)
  • fix:修补 bug
  • doc:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

subject

subject 是 commit 目的的简短描述。

  1. 以动词开头,使用第一人称现在时,比如 change,而不是 changed 或 changes
  2. 第一个字母小写
  3. 结尾不加句号(。)

body

Body 部分是对本次 commit 的详细描述,可以分成多行。
注意:应该说明代码变动的动机,以及与以前行为的对比。

Footer 部分只用于两种情况:

  • 关联 Issue
  • 关闭 Issue

关联 Issue

本次提交如果和某个 issue 有关系则需要写上这个,格式如下:

1
Issue #1, #2, #3

关闭 Issue

如果当前提交信息解决了某个 issue,那么可以在 Footer 部分关闭这个 issue,关闭的格式如下:

1
Close #1, #2, #3

使用 commitizen 来执行规范

  1. 全局安装:
1
sudo npm install -g commitizen
  1. 进入目录执行:
    commitizen init cz-conventional-changelog –save –save-exact

配好后,之后用到 git commit 命令时,改为使用 git cz。就会出现选项,用来生成符合格式的 Commit message。

例子

1
2
3
4
5
6
7
8
9
feat: 添加了分享功能
给每篇博文添加了分享功能

- 添加分享到微博功能
- 添加分享到微信功能
- 添加分享到朋友圈功能

Issue #1, #2
Close #1

参考资料

Commit message 和 Change log 编写指南

-------------本文结束感谢您的阅读-------------
undefined