Git 完整的提交规范教程

约定式提交规范

本文中的关键词 “必须(MUST)”、“禁止(MUST NOT)”、“必要(REQUIRED)”、“应当(SHALL)”、“不应当(SHALL NOT)”、“应该(SHOULD)”、“不应该(SHOULD NOT)”、“推荐(RECOMMENDED)”、“可以(MAY)” 和 “可选(OPTIONAL)”

  1. 每个提交都必须使用类型字段前缀,它由一个名词构成,诸如 feat 或 fix , 其后接可选的范围字段,可选的 !,以及必要的冒号(英文半角)和空格。
  2. 当一个提交为应用或类库实现了新功能时,必须使用 feat 类型。
  3. 当一个提交为应用修复了 bug 时,必须使用 fix 类型。
  4. 范围字段可以跟随在类型字段后面。范围必须是一个描述某部分代码的名词,并用圆括号包围,例如: fix(parser):
  5. 描述字段必须直接跟在 <类型>(范围) 前缀的冒号和空格之后。 描述指的是对代码变更的简短总结,例如: fix: array parsing issue when multiple spaces were contained in string 。
  6. 在简短描述之后,可以编写较长的提交正文,为代码变更提供额外的上下文信息。正文必须起始于描述字段结束的一个空行后。
  7. 提交的正文内容自由编写,并可以使用空行分隔不同段落。
  8. 在正文结束的一个空行之后,可以编写一行或多行脚注。每行脚注都必须包含 一个令牌(token),后面紧跟 :<space> 或 <space># 作为分隔符,后面再紧跟令牌的值脚注的令牌必须使用 - 作为连字符,比如 Acked-by (这样有助于 区分脚注和多行正文)。有一种例外情况就是 BREAKING CHANGE,它可以被认为是一个令牌。
  9. 脚注的值可以包含空格和换行,值的解析过程必须直到下一个脚注的令牌/分隔符出现为止。
  10. 破坏性变更必须在提交信息中标记出来,要么在 <类型>(范围) 前缀中标记,要么作为脚注的一项。
  11. 包含在脚注中时,破坏性变更必须包含大写的文本 BREAKING CHANGE,后面紧跟着冒号、空格,然后是描述,例如: BREAKING CHANGE: environment variables now take precedence over config files 。
  12. 包含在 <类型>(范围) 前缀时,破坏性变更必须通过把 ! 直接放在 : 前面标记出来。 如果使用了 !,那么脚注中可以不写 BREAKING CHANGE:, 同时提交信息的描述中应该用来描述破坏性变更。
  13. 在提交说明中,可以使用 feat 和 fix 之外的类型,比如:docs: updated ref docs. 。
  14. 工具的实现必须不区分大小写地解析构成约定式提交的信息单元,只有 BREAKING CHANGE 必须是大写的。
  15. BREAKING-CHANGE 作为脚注的令牌时必须是 BREAKING CHANGE 的同义词。

为什么使用约定式提交

提交类型 标题 描述 表情符号 发布 包含在变更日志中
feat 特征 一个新功能 minor true
fix Bug修复 错误修复 patch true
docs 文档 仅文档更改 patch如果scopereadme true
style 风格 不影响代码含义的更改(空格、格式、缺少分号等) - true
refactor 代码重构 既不修复错误也不添加功能的代码更改 - true
perf 性能改进 提高性能的代码更改 patch true
test 测试 添加缺失的测试或纠正现有的测试 - true
build 构建 影响构建系统或外部依赖项的更改(示例范围:gulp、broccoli、npm) patch true
ci 持续集成 对我们的 CI 配置文件和脚本的更改(示例范围:Travis、Circle、BrowserStack、SauceLabs) - true
chore 家务活 不修改 src 或测试文件的其他更改 - true
revert 还原 恢复之前的提交 - true

相关推荐

  1. Git 完整提交规范教程

    2024-07-11 01:58:01       32 阅读
  2. Git提交规范详解

    2024-07-11 01:58:01       63 阅读
  3. Git提交规范

    2024-07-11 01:58:01       73 阅读
  4. Git 提交前缀规范

    2024-07-11 01:58:01       56 阅读
  5. git提交注释规范

    2024-07-11 01:58:01       56 阅读
  6. Git提交规范

    2024-07-11 01:58:01       62 阅读
  7. git -- 提交规范

    2024-07-11 01:58:01       40 阅读
  8. Git】代码提交规范

    2024-07-11 01:58:01       36 阅读
  9. git 使用教程规范以及示例

    2024-07-11 01:58:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 01:58:01       143 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 01:58:01       157 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 01:58:01       132 阅读
  4. Python语言-面向对象

    2024-07-11 01:58:01       142 阅读

热门阅读

  1. 【Zoom安全解析】深入Zoom的端到端加密机制

    2024-07-11 01:58:01       33 阅读
  2. Qt QSettings 使用详解:跨平台的配置管理

    2024-07-11 01:58:01       25 阅读
  3. Docker Dockerfile:构建与优化

    2024-07-11 01:58:01       31 阅读
  4. 面试题07-09

    2024-07-11 01:58:01       32 阅读
  5. docker里日志分割的方法

    2024-07-11 01:58:01       35 阅读
  6. C#面:解释startup class的configure方法有什么作用?

    2024-07-11 01:58:01       31 阅读
  7. 甲方安全员应该持有什么心态

    2024-07-11 01:58:01       32 阅读
  8. Memcached介绍和详解

    2024-07-11 01:58:01       34 阅读
  9. python xlsx 导出表格超链接

    2024-07-11 01:58:01       34 阅读
  10. qt 子线程更新ui举例

    2024-07-11 01:58:01       29 阅读