logo

Git提交规范,不会还有人不知道吧!

大家好呀,下面是大型开源项目vue的pr截图,没想到玩了多年github,竟然还有提交描述规范,如果想参与开源项目,这个规范可不能不知道呀

互联网相关的企业,开发项目,一般都会使用git版本控制工具,来管理代码;当一个团队多人进行开发提交代码时,如果没有统一的规范,会导致commit message杂乱无序,非常不利于管理;所以一个合理的代码提交规范,能够有效的提交记录的可读性和自动化处理能力

我们接下来介绍一下,常见的提交规范,约定式提交,它的中文说明https://www.conventionalcommits.org/zh-hans/v1.0.0/

原文:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

译文:

<类型>[可选 范围]: <描述>

[可选 正文]

[可选 脚注]

其中类型type描述description是必填的;scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同;subject是commit目的的简短描述,一般不超过50个字符

常见的类型type的种类和含义如下:

  1. feat: 新功能,表示在代码库中新增了一个功能

  2. fix: 修复bug,表示在代码库中修复了一个 bug

例如 @commitlint/config-conventional(基于 Angular 约定)中推荐的 build:chore:ci:docs:style:refactor:perf:test:,等等。

  • build: 用于修改项目构建系统,例如修改依赖库、外部接口或者升级 Node 版本等;
  • chore: 用于对非业务性代码进行修改,例如修改构建流程或者工具配置等;
  • ci: 用于修改持续集成流程,例如修改 Travis、Jenkins 等工作流配置;
  • docs: 用于修改文档,例如修改 README 文件、API 文档等;
  • style: 用于修改代码的样式,例如调整缩进、空格、空行等不影响代码运行的变更;
  • refactor: 用于重构代码,例如修改代码结构、变量名、函数名等但不修改功能逻辑;
  • perf: 用于优化性能,例如提升代码的性能、减少内存占用等;
  • test: 用于修改测试用例,例如添加、删除、修改代码的测试用例等
  • revert: 回滚,用于提交回滚之前的提交

这里再举一个常见的例子:feat(Controller):用户查询接口开发。平时我们的开发工具idea,vscode也都有对应的git插件,大家可以去试试

以上就是我们梳理的git commit规范,其实一个统一且合理的提交规范,不仅能几乎不花费额外精力和时间,但在之后查找问题的效率却很高,便于程序员对提交历史进行追溯,了解发生了什么情况;还能够格式化commit message,用于自动化输出Change log


参考资料: 约定式提交