背景
Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇百怪,中英文混合使用、fix bug等各种笼统的message司空见怪,这就导致后续代码维护成本特别大,有时自己都不知道自己的fix bug修改的是什么问题。基于以上这些问题,我们希望通过某种方式来监控用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。
规范介绍
首先我们可以看下AngularJS 的规范,它是由 Google 推出的一套提交消息规范标准,也是目前使用范围最广的规范。有一套合理的手册也较为系统化;并且还有配套的工具可以供我们使用。
说白了,规范就是用工具进行强约束。规范执行方案如下:
image既然有了方案,就会按照某些规则执行,以下是 Google AnguarJS 规范的要求:
规范目标
-
允许通过脚本生成 CHANGELOG.md
-
可以通过范围的关键词,快速的搜索到指定版本
git log HEAD --grep feat(package.json) # 在package.json文件里新增的特性。
格式要求
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
-
消息只占用一行,任何行都不能超过 100 个字符
-
允许使用 GitHub 以及各种 Git 工具阅读消息
-
提交消息由页眉、正文和页脚组成,由空行分隔
<type>
代表某次提交的类型,比如是修复一个 bug 或是增加一个 feature,类型如下:
image<scope>
范围可以是指定提交更改位置的任何内容,如:
-
对 package.json 文件新增依赖库,chore(package.json): 新增依赖库
-
或对代码进行重构,refacto(weChat.vue): 重构微信进件
<subject>
如果没有更合适的范围,可以直接写提交内容
规范建设
初期我们在互联网上搜索了大量有关git commit规范的资料,但只有Angular规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具(IDEA就有插件支持这种写法)。最后综合阿里巴巴高德地图相关部门已有的规范总结出了一套git commit规范。
commit message格式
<type>(<scope>): <subject>
image
总结
编码规范、流程规范在软件开发过程中是至关重要的,它可以使我们在开发过程中少走很多弯路。Git commit规范也是如此,确实也是很有必要的,几乎不花费额外精力和时间,但在之后查找问题的效率却很高。作为一名程序员,我们更应注重代码和流程的规范性,永远不要在质量上将就。
首发地址:如何规范你的Git commit?
网友评论