Git

Git

规范

1
2
3
<类型>[可选 作用域]: <描述>
[可选 正文]
[可选 脚注]

类型

类型 含义说明 示例
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/
作者
听风
发布于
2025年10月26日
更新于
2025年9月26日
许可协议