导读:commit message应该如何写才更清晰明了?团队开发中有没有遇到过让人头疼的git commit?本文分享在git commit标准建设上的实际,规定了commit message的格局,并通过webhook在提交时进行监控,防止不标准的代码提交。

背景

Git每次提交代码都须要写commit message,否则就不容许提交。一般来说,commit message应该清晰明了,阐明本次提交的目标,具体做了什么操作……然而在日常开发中,大家的commit message千奇百怪,中英文混合应用、fix bug等各种抽象的message司空怪罪,这就导致后续代码保护老本特地大,有时本人都不晓得本人的fix bug批改的是什么问题。基于以上这些问题,咱们心愿通过某种形式来监控用户的git commit message,让标准更好的服务于品质,进步大家的研发效率。

标准介绍

首先咱们能够看下AngularJS 的标准,它是由 Google 推出的一套提交音讯标准规范,也是目前应用范畴最广的标准。有一套正当的手册也较为系统化;并且还有配套的工具能够供咱们应用。

说白了,标准就是用工具进行强束缚。标准执行计划如下:

既然有了计划,就会依照某些规定执行,以下是 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,类型如下:

<scope>

范畴能够是指定提交更改地位的任何内容,如:

  • 对 package.json 文件新增依赖库,chore(package.json): 新增依赖库
  • 或对代码进行重构,refacto(weChat.vue): 重构微信进件

<subject>

如果没有更适合的范畴,能够间接写提交内容

标准建设

初期咱们在互联网上搜寻了大量无关git commit标准的材料,但只有Angular标准是目前应用最广的写法,比拟正当和系统化,并且有配套的工具(IDEA就有插件反对这种写法)。最初综合阿里巴巴高德地图相干部门已有的标准总结出了一套git commit标准。

commit message格局

<type>(<scope>): <subject>

总结

编码标准、流程标准在软件开发过程中是至关重要的,它能够使咱们在开发过程中少走很多弯路。Git commit标准也是如此,的确也是很有必要的,简直不破费额定精力和工夫,但在之后查找问题的效率却很高。作为一名程序员,咱们更应重视代码和流程的规范性,永远不要在品质上将就。