Skip to content

Commit 提交信息规范

山间草夫 edited this page May 13, 2022 · 7 revisions

为保证 git 提交记录能够清晰的反应提交的内容,我们制定了如下 commit 提交信息规范。此规范涵盖了社区贡献者与 Deepin 内部均需遵守的规范格式。

由于社区贡献者与 Deepin 内部员工的贡献方式有别,关于以下规范中的部分信息是否需要填写的要求也会有所差异,将会在随后的段落中另行描述。

Commit 格式小抄

以下为满足目前提交信息规范的基准格式。(如果您是 deepin 内部开发人员,则 Log: 一行必须存在,如果是外部贡献者,则 Log: 一行可选,但仍建议提供)

类型: 标题概要

详细描述

Log: 填写面向于产品的总结性内容,用于生成更新日志

关于类型详情以及选填的其它元信息等内容,请参阅下方提供的完整的格式规范描述。

格式规范

我们使用类如 约定式提交 格式的提交信息格式,其中分别包含提交的标题概要,详细描述以及额外元信息三个部分,这三个部分均为必须提供的部分:

类型: 标题概要

详细描述

元信息类型: 元信息内容

标题概要一部分中需要提供的类型可参见 约定式提交 中的介绍。

相比约定式提交,我们额外对每个提交的提交信息有附带元信息的要求,元信息大概有下面几种:

Log: 填写面向于产品的总结性内容,用于生成更新日志(必填)
Bug: 内部开发人员适用,填写修复的缺陷链接
Issue: 填写对应的 GitHub Issue 信息
Task: 内部开发人员适用,填写相关任务链接
Influence: 此提交会造成的影响

社区贡献者仅需了解这些元信息字段的存在即可,参见后续关于社区贡献者的段落。

这些元信息是为了方便自动化处理和项目管理而存在的,由于自动化流水线检查过程中的检查项会利用这些元信息字段,故一些字段是必须提供的。

举例而言,一个符合提交规范的提交信息大概像是这样(这个例子即为 dtkgui@3ecea3 的提交信息):

feat: 支持无标题、窗口圆角、系统菜单

窗口圆角、系统菜单兼容旧借口,新增无标题栏的适配

Log: 支持无标题、窗口圆角、系统菜单
Task: https://pms.uniontech.com/zentao/task-view-93008.html
Influence: 所有dtk应用的标题栏、窗口圆角

社区贡献者相关

上述的元信息字段描述了一个字段为必填,即 Log。这些字段的值均为站在产品发布角度所使用的值,对于社区贡献者可能会有些生疏。若您并不了解相关的填写方式,您也不必担心。您可以将元信息部分留空,只在 Commit 信息中保留标题与描述两个部分,即下面这样:

类型: 标题概要

详细描述

尽管这样的提交可能造成持续集成显示检查失败,您可以暂时忽略关于提交信息缺失元信息的相关提示。我们的社区工作人员和其它贡献者可帮您在合并时修改提交日志,帮您补充缺失但必要的元信息。

注意事项

  1. 提交信息的标题与描述 建议使用英文 但并非强制要求。若您是英文新手,您也 可以使用中文
  2. 涵盖描述内容的元信息(如 LogInfluence)须使用中文描述。
  3. 标题中的类型后使用半角冒号,后随一个半角空格。例如 fix: 标题 而不是 fix:标题fix:标题
  4. 元信息中类型后同样使用半角冒号,后随一个半角空格。例如 Log: 更新日志内容
  5. Log 类型的元信息必须存在,作为一般社区贡献者可暂不提供,作为有合并权限的贡献者,应在合并时 酌情考虑 将缺失的元信息予以补齐再进行合并。