首页/开发/Git 与协作速查/Conventional scope 范围写法
协作与代码评审75 条

Conventional scope 范围写法

scope 用括号标注影响范围(模块、包、目录),面向单仓多模块项目尤其有用;范围名建议与目录/包名一致,便于按范围筛选提交。

Git 与协作速查开发更新于 2026-10-13

提交范围怎么写

在类型之后用括号标注影响范围,例如模块名、包名或目录名,让读者一眼看出这条提交动了哪一部分。对单仓多模块的项目尤其有用:范围名与目录名保持一致时,既能按范围筛选提交,也能按范围自动分派评审人。

基本信息

语法类型(范围): 描述
取值建议与模块名、包名或目录名保持一致
省略规则全仓级别的改动可以直接省略范围
检索方式按类型与范围的组合过滤提交信息
常见隐患范围大小写或中英文不统一会让筛选失效

典型使用场景

  • 单仓多模块项目里区分改动的归属模块
  • 按模块自动分派评审人
  • 生成变更日志时按模块分组
  • 从历史里筛出某个模块的全部改动
  • 按范围触发对应的流水线任务

常用示例

常用示例
git commit -m 'fix(auth): 修正令牌过期判断'     # 标注影响模块
git commit -m 'feat(web): 增加暗色主题切换'     # 前端模块改动
git commit -m 'chore: 升级构建工具链'           # 全局改动可省略范围
git log --oneline --grep '^fix(auth)'           # 按范围检索提交
git log --oneline -- web/                       # 按目录对照检索

范围粒度对照

范围写法适用情况
模块名,如 auth改动集中在一个模块,推荐做法
包名,如 client-core多包仓库里按包划分
多层嵌套,如 core/auth/token粒度太细,可读性差,不推荐
省略范围跨模块或全局性改动
范围不必细到文件级,粒度以「能定位责任模块」为准;全仓级改动直接省略范围,信息反而更清楚。
范围命名要写进团队规范:同一模块出现多种写法之后,按范围筛选与自动分派都会失效。
范围与目录名不一致时,按目录检索与按范围检索会得到不同结果;两者对齐可以让工具与人类都省事。
改动横跨多个模块时,宁可省略范围或选取最主要的一个,硬写多个范围会让筛选与分组失去意义。

易错点

  • 范围命名随意混用大小写或中英文,筛选与自动分派失效,规则形同虚设
  • 使用多层嵌套范围,提交信息冗长难读,读者反而抓不到重点
  • 把范围当成必填项,全局改动也硬塞一个模块名,误导后续排查
  • 范围与实际改动不一致(写了后端但改的是前端),按范围检索时结果不可信

数据来源与参考

  • Conventional Commits 1.0.0 规范(scope 章节)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌