前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Conventional Commits 介绍

Conventional Commits 介绍

作者头像
Kindem
发布2022-08-12 14:14:46
4080
发布2022-08-12 14:14:46
举报
文章被收录于专栏:Kindem的博客Kindem的博客

介绍

Conventional Commits
Conventional Commits

Conventional Commits

Conventional Commits (下称 CC) 是一套 git commit message 的规范,旨在让 commit message 能同时被人类和机器所接纳,也就是说满足可读性的同时增强规范性,它的官网在这里: Conventional Commits

目前来看 CC 标准已经被越来越多的人所接受,很多开源项目也积极采纳并推广这套标准(比如 Ant-DesignNaiveUI)。

实话说我之前经常看到过这种 commit message 的写法,但是我还真不知道这种写法有一套专门的标准,偶然间逛 GitHub 发现了这个,决定好好学习一下,这样能帮助自己更好地融入开源社区。

规范详解

CC 规范最重要的莫过于 git commit message 的格式:

代码语言:javascript
复制
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

按照这种写法的优点在于 git 历史记录会相当规范,这很适合一些自动化工具去解析、生成这些提交信息,同时又不失可读性。

其中 type 字段用于传达本笔提交大致的内容:

  • fix 表示提交用于修复 bug
  • feat 表示提交用于添加新功能
  • build 表示提交修改了构建系统或者外部依赖
  • ci 表示提交修改了持续构建、持续部署配置或脚本
  • docs 表示提交修改了文档
  • perf 表示提交进行了性能优化
  • refactor 表示提交进行了重构
  • style 表示提交修改了代码格式问题
  • test 表示提交添加或修改了测试用例
  • BREAKING CHANGE 表示提交进行了不兼容修改,需要在脚注中使用

type 字段后面还可以跟上 scope 以表示更精确的行为,如 feat(parser): add ability to parse arrays

description 字段是本次提交的概述,optional bodyoptional footer(s) 字段是可选的具体描述和脚注。

另外,还可以使用 ! 来取代 BREAKING CHANGE 来表示不兼容修改。

示例

最简单的例子:

代码语言:javascript
复制
docs: correct spelling of CHANGELOG

scope 的例子:

代码语言:javascript
复制
feat(lang): add polish language

! 表示不兼容修改:

代码语言:javascript
复制
refactor!: drop support for Node 6

BREAKING CHANGE 表示不兼容修改:

代码语言:javascript
复制
feat: allow provided config object to extend other configs

BREAKING CHANGE: `extends` key in config file is now used for extending other config files

!BREAKING CHANGE 同时使用:

代码语言:javascript
复制
refactor!: drop support for Node 6

BREAKING CHANGE: refactor to use JavaScript features not available in Node 6.

一个完整的例子:

代码语言:javascript
复制
fix: correct minor typos in code

see the issue for details

on typos fixed.

Reviewed-by: Z
Refs #133

更多规范

CC 规范还有一些明文条例,具体参考 Specification

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 规范详解
  • 示例
  • 更多规范
相关产品与服务
持续部署
CODING 持续部署(CODING Continuous Deployment,CODING-CD)用以管理软件在经过构建之后的发布和部署交付过程,可以无缝对接上游 Git 仓库、制品仓库实现全自动化部署,同时支持 Webhook 等外部对接能力,方便集成各种开发、运维工具。在配以合适的技术架构、运维工具的基础上,可以方便地实现蓝绿发布、灰度发布(金丝雀发布)、滚动发布、快速回滚等功能。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档