Skip to content

Git 规范 ​

Git 提交日志格式规范 ​

message header(即首行)必选,scope、body 和 footer 可选。

sh
<type>[optional scope]: <subject>

[optional body]

[optional footer(s)]

type

type 用来描述本次提交的改动类型,可选值及对应含义如下:

  • feat: 新增功能
  • fix: 修复 bug
  • docs: 文档相关的改动
  • style: 对代码的格式化改动,代码逻辑并未产生任何变化(例如代码缩进,分号的移除和添加)
  • test: 新增或修改测试用例
  • refactor: 重构代码或其他优化举措
  • chore: 项目工程方面的改动,代码逻辑并未产生任何变化
  • revert: 恢复之前的提交

scope

scope 用来描述本次提交所涉及到的改动范围(例如模块、功能或其他任何限定的范围)。

scope 的具体取值视项目而定。以淘宝详情页为例,取值可以是:header, footer, favorite, sku, etc...

如果是 monorepo 的项目,scope 取值可以是 subpackage 的名称。例如 babel 项目中对某个 package 的修改:

sh
chore(babel-helper-plugin-utils): add npmignore

subject subject 用来概括和描述本次提交的改动内容

  1. 时态方面使用一般现在时,不要使用过去时。虽然查看 message 时,message 内容本身都发生在过去,然而对于主题来说,使用现在时的时态更简洁明确,并且更易达成一致性
  2. 句式使用祈使句。即一般情况不要增加主语。因为在绝大情况下,主语都是作者『我』
  3. 句首无需大写,句尾无需结束标点。因为主题(或标题)本身不用形成完整的句子

Git 分支命名规范 ​

分支命名 ​

注意:该命名规范只针对新建的临时分支,不包括如 master、develop 等常驻分支

新建分支的命名格式为:{type}-{issue id}-the-thing-you-do

比如以下格式都满足规范:

  • feat-ssr-prefetch:新增 ssr prefetch 功能
  • fix-1379-component-insert-order:修复 issue 1379 中提到的组件插入顺序 bug
  • revert-14218-memory-leak-on-unmount:回退版本解决 issue 14218 提到的组件卸载时内存泄露的问题

Git tag 命名规范 ​

Git tag 就是通过语义化的名称来给仓库标注一个个具体的节点。与此同时还可以根据标签名称来大致了解当前项目的兼容性和迭代情况。

命名格式为 v{semver}

相比于使用例如 git tag v1.2.3 这种「轻量标签」,更推荐使用如下命令生成「附注标签」:

git tag -a v1.2.3 -m "发布经销商管理模块"

文档规范 ​

文档的含义非常广泛,可以指代任何供人类阅读的文本材料。包括但不限于:Readme、Changelog、代码注释、上手指南、Issue 说明和PPT 分享等。

空格 ​

  • **【强制】**中英文之间需要增加空格
  • **【强制】**中英文与数字之间需要增加空格
  • **【强制】**全角标点与其他字符之间不加空格
  • **【强制】**半角标点与其他字符之间需要增加空格
  • **【推荐】**链接文字前后不需要增加空格

标点符号 ​

  • **【推荐】**正确使用引号
  • **【推荐】**正确使用省略号
  • **【推荐】**正确使用破折号

全角和半角 ​

  • **【强制】**中文标点符号使用全角
  • **【强制】**英文和数字使用半角
  • **【强制】**完整的英文整句和特殊名词使用半角标点

名词 ​

  • **【强制】**正确地拼写英文专有词汇

CHANGELOG 规范 ​

什么时候需要一个 CHANGELOG?

  1. 如果你在维护一个开源项目,或者公司内部的底层技术产品,那么提供一个 Changelog 是必需的。开发者用户很可能需要从一个低版本升级到最新版,Changelog 可以帮助他们了解新版本有哪些变化。
  2. 如果你在开发一个业务应用,那么 Changelog 不是必需的。然而提供一个 Changelog 会更好,因为其他协作者或是交接方能更直观地看到业务逻辑的演变。

文件 ​

  • **【强制】**Changelog 文件必须取名为 CHANGELOG.md
  • **【强制】**Changelog 文件必须是使用标准 Markdown 语法的文本文件,并以 .md 作为后缀
  • **【强制】**Changelog 文件必须存放在项目根目录下,和 README.md、CONTRIBUTING.md 等并列

格式 ​

  • **【强制】**文章标题使用「更新日志」作为固定文案。国际化场景使用英文「Change Log」作为固定文案
  • **【强制】**Changelog 内容按版本号降序排列,最新版本放在最前面
  • **【强制】**版本号 version 需遵循 SemVer 规范
  • **【强制】**更新日期 date 采用 yyyy-MM-dd 格式
  • **【推荐】**版本号增加一个超链接,指向当前版本和上一个版本之间的 `diff
  • **【推荐】**更新类型 type 与 Git message header 中的 type 相关联,可以不一一对应

样本示例 ​

md
# 更新日志

## [4.6.0](https://github.com/ant-design/ant-design/compare/4.5.4...4.6.0) (2020-08-23)

### 新增

- 新增图片组件 Image。
- Table 新增 `sticky` 属性以支持固定表头和滚动条。[#25939](https://github.com/ant-design/ant-design/pull/25939)

### 修复

- 修复 Pagination 字体相关样式问题。[#26230](https://github.com/ant-design/ant-design/pull/26230)
- 修复 Space `children` 有时会重新渲染的问题。[#26219](https://github.com/ant-design/ant-design/pull/26219)

### 优化

- 用 hooks 重构 Upload。

## [4.5.4](https://github.com/ant-design/ant-design/compare/4.5.3...4.5.4)(2020-08-12)

### 新增

- 新增 `@badge-color` Less 变量。

### 修复

- 修复 Form.Item 在 `hidden` 时引用 Less 样式时失效的问题。[#26152](https://github.com/ant-design/ant-design/pull/26152)