为什么要捐赠
API 资源管理器
提交规范

目标

  • 允许通过 git bisect 忽略提交(不重要的提交,如格式化)
  • 在浏览历史记录时提供更好的信息

警告

此规则适用于所有 Quasar 代码库.

精心维护的日志是一件美丽而有用的东西。 git blamerevertrebaselogshortlog 以及其他子命令变得栩栩如生。审查他人的提交和拉取请求变成了一件值得做的事情,而且突然可以独立完成。理解几个月甚至几年前发生的事件不仅成为可能,而且变得高效。

优秀 Git 提交信息的规则

  1. 用空行将主题与正文分开
  2. 将主题行限制在 70 个字符以内
  3. 主题行首字母大写
  4. 主题行末尾不要加句号
  5. 在主题行中使用祈使语气
  6. 将正文折行到 80 个字符
  7. 使用正文解释什么和为什么,而不是怎么做

提交信息的格式

type(<scope>): <Subject> #<github-ref-id>

<body>

<footer>

提交信息的示例

fix(ui): Ensure Range headers adhere more closely to RFC 2616 #2310

To add new dependency use `range-parser`to compute the range.
It is more well-tested in the wild.

BREAKING CHANGE:
port-runner command line option has changed to runner-port.
To migrate your project, change all the commands,
where you use --port-runner to --runner-port.

信息主题(第一行)

第一行不能超过 70 个字符,第二行始终为空。 类型和范围应始终小写,如下所示。

允许的 <type>

  • feat - 为用户提供的新的功能,而不是为构建脚本提供的新的功能
  • fix - 为用户修复的 bug,而不是为构建脚本修复的 bug
  • docs - 仅文档更改
  • style - 不影响代码含义的更改(空白、格式化、缺少分号等)
  • refactor - 重构生产代码,既不修复 bug 也不添加功能的代码更改
  • chore - 其他不修改 src 或 test 文件的更改(无生产代码更改)以及依赖项更新
  • perf - 提高性能的更改
  • revert - 撤消之前的提交
  • test - 添加缺少的测试,重构测试;无生产代码更改
  • build - 影响构建系统或外部依赖项的更改(例如 ui/build/*
  • ci - 对持续集成配置文件和脚本的更改(例如 GitHub Actions)

示例 <scope>

  • 与目录/包相关的:ui、cli、app-webpack、app-vite 等。
  • 与功能相关的:api、TouchSwipe、QTime 等。

提示

The <scope> 可以包含用 ampersand(&) 分隔的多个值。 例如:feat(app-vite&app-webpack): Add Capacitor mode.

The <scope> 可以为空(例如,如果更改是全局的),在这种情况下,圆括号将被省略。 例如:style: Use semicolons

信息正文

  • 使用祈使语气,现在时态:“change” 而不是 “changed” 或者 “changes”
  • 包含更改的动机并与之前的行为对比

重大变更

所有重大变更都必须在页脚中作为重大变更块进行说明,该块应以 BREAKING CHANGE: 开头,后面跟一个空格或两个换行符。 提交信息的其余部分则是更改的描述、理由和迁移说明。

BREAKING CHANGE: isolate scope bindings definition has changed and
    the inject option for the directive controller injection was removed.

    To migrate the code follow the example below:

    Before:

    scope: {
      myAttr: 'attribute',
      myBind: 'bind',
      myExpression: 'expression',
      myEval: 'evaluate',
      myAccessor: 'accessor'
    }

    After:

    scope: {
      myAttr: '@',
      myBind: '@',
      myExpression: '&',
      // myEval - usually not useful, but in cases where the expression is assignable, you can use '='
      myAccessor: '=' // in directive's template change myAccessor() to myAccessor
    }

引用问题

已关闭的问题应在页脚的单独一行中列出,并在前面加上 “Closes” 关键字,例如

Closes #234

或者,如果有多个问题

Closes #123, #245, #992