Git
Git
规范
1 | |
类型
| 类型 | 含义说明 | 示例 |
|---|---|---|
| feat | 新增功能(对应 SemVer 的 minor 版本) |
feat(auth): 新增微信登录功能 |
| fix | 修复 bug(对应 SemVer 的 patch 版本) |
fix(pay): 修复支付宝支付回调失败 |
| docs | 仅修改文档(如 README、API 文档),不涉及代码逻辑 | docs: 更新接口文档参数说明 |
| style | 代码风格调整(不影响代码运行的变动,如空格、缩进、格式化) | style: 统一使用 2 空格缩进 |
| refactor | 重构代码(既不新增功能,也不修复 bug,如变量名优化、逻辑拆分) | refactor(user): 拆分用户信息处理逻辑 |
| perf | 性能优化(如减少循环次数、缓存结果) | perf(list): 优化长列表渲染性能 |
| test | 新增 / 修改测试代码(如单元测试、集成测试) | test(login): 补充登录失败场景测试 |
| chore | 构建流程、依赖管理、工具配置等辅助性变动(不涉及业务代码) | chore: 升级 eslint 到 8.50.0 |
| revert | 回滚之前的提交(需在描述中注明回滚的 commit hash) | revert: feat(auth): 回滚微信登录功能 (a1b2c3d) |
作用域
- 作用域是对提交影响的 “模块 / 功能” 的细分,让影响范围更明确。取值由团队约定
描述
- 提交的核心内容,描述是对提交行为的简短总结,需遵循以下规则:
- 长度控制在 50 字符以内(避免过长,保证可读性);
- 用现在时(如 “add” 而非 “added”,“fix” 而非 “fixed”);
- 首字母小写(除非是专有名词,如 “API”);
- 结尾不加句号。
正文
- 可选,补充详细说明
- 与标题空一行分隔;
- 每行长度控制在 72 字符以内(避免自动换行影响阅读);
- 内容需说明 “为什么改”“改了什么”“与之前的差异”(而非 “怎么改”,代码已体现)
脚注
- 可选,标注特殊信息
- 脚注用于标注破坏性变更(Breaking Change) 或关联 Issue,格式为 “键值对” 或固定前缀。
破坏性变更
- 当提交导致向后不兼容(如删除接口、修改参数格式)时,需在脚注用
BREAKING CHANGE:开头说明,对应 SemVer 的major版本。 refactor(api)!: 移除 v1 版本用户接口 由于 v1 接口存在安全漏洞,已全面迁移到 v2 接口,现移除 v1 相关逻辑。 BREAKING CHANGE: 移除 /api/v1/user 接口,请使用 /api/v2/user 替代。1
2
3
4
5
6
7
8#### 关联Issue
+ 若提交是为了解决 Issue(如 GitHub/GitLab 的 Issue),可在脚注用 `Closes`/`Fixes` 关联,支持自动关闭 Issue(需平台支持)。
+ ```
fix(pay): 修复支付宝支付回调超时
增加回调超时重试机制,重试间隔 3s,最多 5 次。
Closes #123, Fixes #125
常用缩写
- LGTM — Looks good to me,表示认可这次PR,同意merge 合并代码到远程仓库
- ASAP -— as soon as possible! 尽快
- ACK — acknowledgement, i.e. agreed/accepted change
- NACK/NAK — negative acknowledgement, i.e. disagree with change and/or concept
- RFC — request for comments, i.e. I think this is a good idea, lets discuss
- WIP:Work In Progress 「进展中」,常见词汇,这里做为 Best Practice 单独提出来,主要针对改动较多的 PR,可以先提交部分,标题或 Tag 加上 WIP,表示尚未完成,这样别人可以先 review 已提交的部分
- AFAIK/AFAICT — as far as I know / can tell
- IIRC — if I recall correctly
- IANAL — “ I am not a lawyer ”, but I smell licensing issues
- IMO — (In my opinion),在我看来
- TL;DR — Too Long; Didn’t Read 「太长懒得看」,README 文档常见。
- PR — Pull request「合并请求」
- CR — Code Review 「代码审查」
- PTAL — Please Take A Look. 你来瞅瞅?用来提示别人来看一下
- TBR — To Be Reviewed. 提示维护者进行 review
- TBD — To Be Done(or Defined/Discussed/Decided/Determined). 根据语境不同意义有所区别,但一般都是还没搞定的意思。
- TBH — To be honest 「老实说」
- atm — at the moment 「现阶段」,
Git
https://x-leonidas.github.io/2025/10/26/22tool/Git/