git 的提交格式化有很多好处,本文整理一套自己用的提交信息格式。
格式
提交信息包括三个部分:header
,body
和 footer
。
<header></header>
<body></body>
<footer></footer>
其中,header 是必需的,body 和 footer 可以省略。
header
Header 部分只有一行,包括俩个字段:type
(必需)和 subject
(必需)。
<type>: <subject>
type
type 用于说明 commit 的类别,可以使用如下类别:
- feat:新功能(feature)
- fix:修补 bug
- doc:文档(documentation)
- style: 格式(不影响代码运行的变动)
- refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
- test:增加测试
- chore:构建过程或辅助工具的变动
subject
subject 是 commit 目的的简短描述。
- 以动词开头,使用第一人称现在时,比如 change,而不是 changed 或 changes
- 第一个字母小写
- 结尾不加句号(。)
body
Body 部分是对本次 commit 的详细描述,可以分成多行。
注意:应该说明代码变动的动机,以及与以前行为的对比。
footer
Footer 部分只用于两种情况:
- 关联 Issue
- 关闭 Issue
关联 Issue
本次提交如果和某个 issue 有关系则需要写上这个,格式如下:
Issue #1, #2, #3
关闭 Issue
如果当前提交信息解决了某个 issue,那么可以在 Footer 部分关闭这个 issue,关闭的格式如下:
Close #1, #2, #3
使用 commitizen 来执行规范
- 全局安装:
sudo npm install -g commitizen
- 进入目录执行:
commitizen init cz-conventional-changelog –save –save-exact
配好后,之后用到 git commit
命令时,改为使用 git cz
。就会出现选项,用来生成符合格式的 Commit message。
例子
feat: 添加了分享功能
给每篇博文添加了分享功能
- 添加分享到微博功能
- 添加分享到微信功能
- 添加分享到朋友圈功能
Issue #1, #2
Close #1