Git 代码提交规范详解:feat, fix, chore 等关键词的含义与最佳实践

在日常开发中,你是否经常看到别人的代码提交记录(Commit Log)里充满了 feat、fix、chore 等各种英文单词,而自己在提交时却往往只写"update"或者"修改bug"?

在日常开发中,你是否经常看到别人的代码提交记录(Commit Log)里充满了 featfixchore 等各种英文单词,而自己在提交时却往往只写"update"或者"修改bug"?

其实,这是一种代码提交规范(Conventional Commits)。这并不是为了炫技,而是为了提高提交记录的可读性,让团队协作更顺畅,同时也便于自动化工具(如发布工具或 Changelog 生成器)解析和处理提交记录。

今天,我就结合实际案例,来和大家详细聊聊这些单词到底是什么意思,以及如何写出规范的 Commit Message。

为什么要规范提交?

在看开源项目(如 Element Plus)的 Commit 记录时,你会发现它们的记录非常清晰:

chore: update doc ui
style(components): [select& select-v2] remove split dash
feat(components): [select & select-v2] add label slot
fix(components): [color-picker] attr s class

这种规范化的提交信息,能让协作者一眼看出这次提交是"新增功能"、"修复 Bug"还是"调整文档"。它不仅让项目历史更加模块化、易于维护,还能帮助自动化工具判断版本号的变更(例如是否需要发布新版本)。

Git 提交规范详解

一个标准的 Commit Message 通常遵循以下格式:

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

或者简单的:

<type>: <message>

其中,type(类型)是最核心的部分,它决定了这次提交的性质。以下是我在开发中最常用到的几种类型:

1. feat:新功能

含义:表示引入了新功能(Feature)。

场景:当你为项目增加了新的模块、接口或用户可见的功能时使用。

示例:

feat: 增加用户注册功能
feat(login): add wechat login button

2. fix:修复 Bug

含义:表示修复了 Bug。

场景:当你解决了代码中的错误、崩溃或逻辑漏洞时使用。

示例:

fix: 修复登录页面崩溃的问题
fix(header): prevent overflow in IE

3. docs:文档变更

含义:仅涉及文档的修改。

场景:更新 README、修改注释、或者调整文档内容,而不改动源代码时。

示例:

docs: 更新 README 文件
docs: add api documentation

4. style:代码风格调整

含义:代码格式调整,不影响代码逻辑。

场景:格式化代码、调整缩进、删除多余空行、修改分号等。这些修改不会改变代码的运行结果。

示例:

style: 删除多余的空行
style: format code according to prettier

5. refactor:代码重构

含义:既不是新增功能也不是修复 Bug 的代码更改。

场景:对现有代码进行优化、重写或结构调整,目的是提高代码质量或可读性。

示例:

refactor: 重构用户验证逻辑
refactor: extract utils function

6. perf:性能优化

含义:提升代码性能的修改。

场景:通过修改代码显著提升了应用的运行速度或资源利用率。

示例:

perf: 优化图片加载速度
perf: improve rendering speed

7. test:增加测试

含义:添加或修改测试用例。

场景:编写单元测试、集成测试等。

示例:

test: 增加用户模块的单元测试
test: fix failing snapshot test

8. chore:杂项(构建过程或辅助工具)

含义:构建过程或辅助工具的变动。

场景:更新构建脚本、修改配置文件、更新依赖库(如 package.json)等,这些改动不直接影响源代码逻辑。

示例:

chore: 更新依赖库
chore: add gitignore file

9. build:构建系统变更

含义:影响构建系统的更改。

场景:升级 Webpack、Vite 等构建工具的版本,或者修改打包配置。

示例:

build: 升级 webpack 到版本 5

10. ci:持续集成配置变更

含义:修改 CI 配置文件和脚本。

场景:修改 GitHub Actions、Travis CI 等配置文件。

示例:

ci: 修改 GitHub Actions 配置文件

11. revert:回滚

含义:撤销之前的提交。

场景:当需要回退到某个历史版本时使用。

示例:

revert: 回滚 feat: 增加用户注册功能

类型速查表

为了方便记忆,我整理了以下表格:

类型 (Type)含义典型场景
feat新功能增加按钮、新接口
fix修复 Bug修复崩溃、逻辑错误
docs文档变更修改 README、注释
style代码风格格式化、空行调整
refactor代码重构优化逻辑、重写模块
perf性能优化提升加载速度
test测试增加单元测试
chore杂项更新依赖、配置文件
build构建变更打包工具升级
ci持续集成CI 配置修改
revert回滚版本回退

总结与建议

使用规范的提交消息(Commit Message)是专业开发者的良好习惯。

虽然如果团队没有强制要求,不这么写也可以完成工作,但规范的提交记录是团队协作效率的重要保障。它能让项目更加模块化、易于维护和理解。

建议:从今天开始,尝试在你的下一次 Commit 中使用 feat:fix: 等前缀。如果你的团队规模较大,还可以引入 commitlint + husky 等工具来强制校验提交格式,或者使用 Commitizen 来引导填写规范的提交信息。

希望这篇文章能帮到你,如果你觉得有用,欢迎点赞分享!



原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/php/1778555057/

  • 1