git commit规范 | 青训营笔记

126 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第2天。

背景

本次项目中使用git作为远程仓库,以此来进行项目的团队开发。git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作。但是在之前开发中,团队成员的commit message千奇百怪,这就导致后续代码维护成本特别大。基于以上这些问题,我们规定了团队的 commit message格式,提高团队的研发效率。

commit message格式

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

type(必须)

用于说明git commit的类别,以下是常用的标识。

feat:新功能(feature)。

fix/to:修复bug。

  • fix:产生diff并已修复此问题。适合于一次提交直接修复问题
  • to:只产生diff并未修复此问题。适合于多次提交。最终修复问题提交时使用fix

refactor:重构(即不是新增功能,也不是修改bug的代码变动)。

revert:回滚到上一个版本。

merge:代码合并。

scope(可选)

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

如果修改影响了不止一个scope,可以使用 * 代替

subject(必须)

subject是commit目的的简短描述,不超过50个字符。

使用中文,结尾不加句号或其他标点符号。

根据以上规范git commit message,在这里举两个例子:

fix(*):用户查询缺少username属性 
feat(View):用户个人页面

好处

  • 便于团队对提交历史进行追溯,了解发生了什么情况。
  • 一旦约束了commit message,意味着我们将慎重的进行每一次提交,不能再一股脑的把各种各样的改动都放在一个git commit里面,这样一来整个代码改动的历史也将更加清晰。