代码要有代码的规范,协作要有协作的规范,所以需要建立合适的规范势在必行;
先看此项目的提交commit 项目AngularJS
参照此项目格式
():
<空行>
头部即首行,是可以直接在页面中预览的部分,入上面图中所示,一共有三个部分,,,含义分别如下
Type
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
Scope
用来说明本次Commit影响的范围,即简要说明修改会涉及的部分。这个本来是选填项,但从AngularJS实际项目中可以看出基本上也成了必填项了。
Subject
用来简要描述本次改动,概述就好了,因为后面还会在Body里给出具体信息。并且最好遵循下面三条:
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
首字母不要大写
结尾不用句号(.)
Body
里的内容是对上面subject里内容的展开,在此做更加详尽的描述,内容里应该包含修改动机和修改前后的对比。Footer
Revert
此外如果需要撤销之前的Commit,那么本次Commit Message中必须以revert:开头,后面紧跟前面描述的Header部分,格式不变。并且,Body部分的格式也是固定的,必须要记录撤销前Commit的SHA值。
为使此项目commit如虎添翼 安装利器Commitiz
为了让我们能把这些规范应用到实际使用中,我们要借助于Commitizen这个Node工具,它会在我们Commit的过程中更具规范的内容来引导我们如何一步一步实施规范。当然,规范这种东西就没有唯一的,各家有各家的不同,这一点当然也被该工具想到了,你也可以自定义一份自己的规范,以插件的形式让Commitizen来根据自家规范提醒你。
安装
npm install -g commitizen commitizen init cz-conventional-changelog --save --save-exact
上面的cz-conventional-changelog就是AngularJS的规范,其它的规范你可以自行到官网上找找看,不行就自己花时间拟定一份吧。此命令帮你完成了下载cz-conventional-changelog规范,配置package.json(添加依赖和配置应用规范),想看具体改动打开package.json即可。
之后在需要git commit的地方更换成git cz指令即可呼出Commit的交互界面.下面看动图