当前位置: 首页 > news >正文

Git 约定式提交(Conventional Commits)规范说明文档

目录

  • Git 约定式提交(Conventional Commits)规范说明文档
    • 1. 文档目的
    • 2. 核心定义
    • 3. 规范格式
      • 3.1 基础格式
      • 3.2 字段说明
      • 3.3 示例
    • 4. 提交类型(type)全量说明
      • 4.1 核心类型(高频使用)
      • 4.2 辅助类型(低频使用)
    • 5. 作用域(scope)规范
      • 5.1 定义
      • 5.2 规则
    • 6. 最佳实践
      • 6.1 提交原则
      • 6.2 禁止场景
      • 6.3 自动化落地
    • 7. 常见问题
      • 7.1 如何区分 refactor 和 feat/fix?
      • 7.2 破坏性变更如何标注?
      • 7.3 团队可自定义类型吗?
    • 8. 文档维护
      • 总结

你需要的是一份可直接落地使用的Git 约定式提交(Conventional Commits)规范说明文档,我为你整理了一份结构完整、内容详实的标准版文档,涵盖核心定义、规范格式、类型说明、最佳实践等,可直接用于团队协作或项目文档归档。

Git 约定式提交(Conventional Commits)规范说明文档

1. 文档目的

标准化团队代码提交信息的书写格式,实现以下目标:

  • 提升提交记录的可读性,便于快速追溯代码变更背景;
  • 支持自动化生成 CHANGELOG(版本变更日志);
  • 辅助语义化版本号(Semantic Versioning)的自动管理;
  • 统一团队协作规范,降低代码评审和维护成本。

2. 核心定义

约定式提交是一种基于 Git 提交信息的轻量级约定,核心规则:

  • 提交信息必须以类型前缀开头,后跟可选的作用域、冒号+空格,最后是简洁的提交描述;
  • 提交信息需使用中文/英文(团队统一即可),简洁明了,不超过 72 个字符;
  • 提交内容需单一职责,一个提交仅对应一个变更点(如仅修复一个 bug、仅新增一个功能)。

3. 规范格式

3.1 基础格式

<type>(<scope>): <subject> [可选的详细描述] [可选的脚注]

3.2 字段说明

字段必选/可选说明
type必选提交类型,标识本次提交的核心目的(如 feat、fix、refactor);
scope可选提交作用域,标识本次提交影响的模块/功能/目录(如 home、user、api);
subject必选提交简短描述,使用祈使句、现在时(如“新增”而非“新增了”,“修复”而非“修复了”);
详细描述可选对提交内容的补充说明,适用于复杂变更,换行后书写;
脚注可选用于标注破坏性变更(BREAKING CHANGE)、关联Issue/PR编号等;

3.3 示例

# 基础示例(仅核心字段) feat(home): 新增首页轮播图功能 # 完整示例(含详细描述+脚注) fix(order): 修复订单支付后状态未同步问题 详细描述: 1. 修复支付回调接口未更新订单状态的逻辑漏洞; 2. 补充订单状态更新的异常捕获机制。 关联Issue: #123

4. 提交类型(type)全量说明

4.1 核心类型(高频使用)

类型中文名称适用场景示例
feat新功能新增产品功能、业务逻辑、接口、页面等(会体现在CHANGELOG中);feat(user): 新增用户手机号绑定功能
fix缺陷修复修复现有功能的bug、逻辑错误、兼容性问题等(会体现在CHANGELOG中);fix(trade): 修复结算金额计算错误
refactor代码重构仅优化代码实现,不新增功能、不修复bug(如逻辑拆分、技术栈升级、写法优化);refactor(chart): 重构图表渲染逻辑
docs文档变更仅修改文档(README、注释、接口文档、帮助文档等),不涉及业务代码;docs(api): 补充用户接口参数说明
style格式调整仅调整代码格式(空格、缩进、分号、命名规范),不改变逻辑;style(common): 统一代码缩进为4个空格
perf性能优化优化性能(加载速度、渲染效率、接口响应、内存占用等),不改变业务功能;perf(list): 优化列表大数据渲染性能
test测试相关新增/修改测试用例、修复测试代码、完善测试覆盖;test(pay): 新增支付接口单元测试

4.2 辅助类型(低频使用)

类型中文名称适用场景示例
chore工程琐事构建/依赖/配置相关变更(如更新npm包、修改.gitignore、调整工程目录);chore(deps): 更新axios至1.6.0版本
build构建变更构建工具配置修改(webpack/vite/rollup等);build(vite): 新增生产环境压缩配置
ci集成变更持续集成流程修改(GitHub Actions/Jenkins/GitLab CI等);ci: 调整CI构建触发规则
revert版本回滚撤销之前的提交,恢复到历史版本;revert: feat(home): 新增首页轮播图功能
breaking破坏性变更变更会导致现有功能不可用(需配合脚注标注 BREAKING CHANGE);breaking(api): 重构用户接口入参格式

5. 作用域(scope)规范

5.1 定义

标识提交影响的模块/范围,建议按以下维度划分:

  • 业务模块:home(首页)、user(用户)、order(订单)、pay(支付)等;
  • 技术模块:api(接口)、utils(工具类)、components(组件)、router(路由)等;
  • 目录名称:src/views、src/store、src/api 等(适用于小型项目)。

5.2 规则

  • 作用域使用小写英文,简洁且团队统一;
  • 无明确作用域时可省略,如docs: 更新README.md

6. 最佳实践

6.1 提交原则

  • 单一职责:一个提交仅做一件事(如“修复一个bug”而非“修复bug+新增功能”);
  • 粒度适中:避免超大提交(如一次性修改10个文件),也避免过细提交(如“修改一个标点”);
  • 描述精准:避免模糊描述(如“修复问题”),需明确具体内容(如“修复登录按钮点击无响应”)。

6.2 禁止场景

  • 禁止无意义提交:如“测试”“修改代码”“临时提交”;
  • 禁止混用类型:如feat+fix: 新增功能并修复bug(应拆分为两个提交);
  • 禁止超长描述:subject 部分控制在72字符内,复杂说明写在“详细描述”中。

6.3 自动化落地

  • 使用commitlint校验提交信息格式(不符合规范则禁止提交);
  • 使用standard-version/semantic-release自动生成 CHANGELOG 和语义化版本号。

7. 常见问题

7.1 如何区分 refactor 和 feat/fix?

  • refactor:功能“对外表现”无变化,仅内部实现优化;
  • feat/fix:功能“对外表现”有变化(新增/修复)。

7.2 破坏性变更如何标注?

在提交信息的脚注中添加BREAKING CHANGE: 变更说明,示例:

refactor(api): 重构用户接口 BREAKING CHANGE: 用户列表接口返回字段格式调整,需前端适配

7.3 团队可自定义类型吗?

可以,核心类型需保留(feat/fix/refactor),可新增团队专属类型(如config用于配置变更、mock用于模拟数据变更)。

8. 文档维护

  • 本规范由团队技术负责人维护;
  • 规范变更需同步更新本文档,并通知全体团队成员;
  • 新成员入职需学习本规范,确保提交格式统一。

总结

  1. 约定式提交核心是通过type(scope): subject格式标准化提交信息,核心类型为feat(新功能)、fix(修复)、refactor(重构);
  2. 提交需遵循“单一职责”原则,描述精准、粒度适中;
  3. 规范可结合自动化工具(commitlint/semantic-release)落地,提升团队协作效率。
http://www.jsqmd.com/news/425345/

相关文章:

  • 回溯算法核心笔记
  • 零基础也能玩转金融数据!Tushare入门指南:我的量化投资“第一把钥匙”
  • 基于强化学习和大模型的船舶避碰系统
  • 企业如何被DeepSeek自然推荐?有专业服务商吗? - 品牌2025
  • 基于springboot+vue的科创积分管理系统
  • springboot基于微信小程序的社团管理平台
  • 基于网络爬虫的房屋信息采集系统的设计与实现
  • 基于springboot+vue的社区邻里服务平台
  • PHP 个高效开发的小技巧
  • 基于springboot+vue的社区汽车共享平台
  • SQL优化实战:从基础到进阶的全面指南
  • 关于我的博客
  • 提高SPI 通信可靠性的参考
  • 新特技术解析:基于光伏和蓄电池的三端口系统在Matlab Simulink中的实现
  • Linux 性能实战 | 附录:动态链接库是如何影响多个进程内存占用的?
  • keil中 .axf .bin .hex文件的认识
  • nodejs+php+vue音乐播放器的设计与实现7z140
  • 基于nodejs+php+vue的宠物用品商城交易平台的设计与实现
  • nodejs+php+vue校园论坛系统 BBS论坛系统
  • Solution - P11597 [NOISG 2018 Finals] City Mapping
  • nodejs+php+vue网上鞋店系统 球鞋商城 鞋材零售网店的设计与实现
  • Shell脚本踩坑记录
  • AT_arc210_e [ARC210E] Subset Sum Gaps
  • 选配
  • nodejs+php+vue课程线上考试系统设计与实现
  • 零基础部署 OpenClaw:从 0 到跑起来(新手可直接照做)
  • 华为 vs H3C交换机常用命令差异
  • 单目相机当深度传感器用,不用双目/结构光。通过阴影估测3D高度。
  • 高并发下如何保证接口的幂等性
  • CF958F2 Lightsabers (medium)题解