提交范围怎么写
在类型之后用括号标注影响范围,例如模块名、包名或目录名,让读者一眼看出这条提交动了哪一部分。对单仓多模块的项目尤其有用:范围名与目录名保持一致时,既能按范围筛选提交,也能按范围自动分派评审人。
基本信息
| 语法 | 类型(范围): 描述 |
|---|---|
| 取值建议 | 与模块名、包名或目录名保持一致 |
| 省略规则 | 全仓级别的改动可以直接省略范围 |
| 检索方式 | 按类型与范围的组合过滤提交信息 |
| 常见隐患 | 范围大小写或中英文不统一会让筛选失效 |
典型使用场景
- 单仓多模块项目里区分改动的归属模块
- 按模块自动分派评审人
- 生成变更日志时按模块分组
- 从历史里筛出某个模块的全部改动
- 按范围触发对应的流水线任务
常用示例
常用示例
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 | 粒度太细,可读性差,不推荐 |
| 省略范围 | 跨模块或全局性改动 |
范围不必细到文件级,粒度以「能定位责任模块」为准;全仓级改动直接省略范围,信息反而更清楚。
范围命名要写进团队规范:同一模块出现多种写法之后,按范围筛选与自动分派都会失效。
范围与目录名不一致时,按目录检索与按范围检索会得到不同结果;两者对齐可以让工具与人类都省事。
改动横跨多个模块时,宁可省略范围或选取最主要的一个,硬写多个范围会让筛选与分组失去意义。