跳到主要内容

Git 提交规范

本文介绍 Git 提交信息的编写规范,即在使用 git commit -m 命令时该如何填写提交信息。规范的 commit 信息,有利于项目的管理和跟踪。可以说,掌握 Git 提交规范是程序员的基本素养。

规范的提交信息在于定义提交消息格式,不同的项目有其各自的格式,因此你应该优先遵守你所参与项目的提交规范。如果是一个全新的项目,那么可以参考本文所推荐的方式。

Git commit 规范

下面是推荐的 git commit 日志基本规范格式:

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

提交类型

在提交消息格式定义中,通常会约定提交消息的类型。例如,一个完整的项目通常需要区分开发和生产类型:

  • 开发 —— 对更改进行分类的维护类型,针对开发人员,实际上并不影响生产代码,而是内部的开发环境和工作流程;
  • 生产 —— 对更改进行分类的增强类型,针对最终用户,仅影响生产代码。

下表列出了一些常用的提交类型及其说明。

提交类型说明
feat添加新特性。
fix修复 Bug。
docs仅仅修改了文档,比如 README、CHANGELOG、CONTRIBUTE 等等。
style仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑。
refactor代码重构,没有加新功能或者修复 Bug。
perf优化相关,比如提升性能、体验。
test测试用例,包括单元测试、集成测试等。
chore改变构建流程、或者增加依赖库、工具等。
build开发类型,改变了内部的开发环境和工作流程。
release修改发布信息。
revert回滚到上一个版本。
ci修改持续集成相关工具。

优秀案例

下面是来自 Vue.js 项目的部分提交信息:

chore: fix some broken links to v2 docs (#12839)
feat: add exports field + mjs build
release: v2.7.13
fix(types): style attribute svg (#12800)
feat(types): enhance type for onErrorCaptured (#12735)

下面是来自 LVGL 项目的部分提交信息:

docs(micropython): add coding conventions section(#3774)
feat(tiny_ttf): ttf support (#3680)
feat(ime_pinyin): add API to use Pinyin IME(Chinese input) (#3408)
chore: bump version numbers to v9.0.0-dev
fix(make): update lvgl.mk and remove unnecessary mk files
arch(env): move the zephyr folder into the env_support folder

插件工具

  • Git Semantic Commit:一个可通过语义消息约定简化 Git 提交的 VS Code 扩展。