Skip to content

Latest commit

 

History

History
47 lines (38 loc) · 2.25 KB

commit-message风格规范.md

File metadata and controls

47 lines (38 loc) · 2.25 KB

Commit Message 风格规范

Commit Message 是对一次 git commit 所包含的变动的概括。

遵循一定的 Commit Message 规范,并形成良好的实践,是开发者对于项目的理解、对于变动的管理、对于风险的控制等一系列能力的体现。

同时,良好的 Commit Message 内容还能帮助其他人,包括 Review 者理解项目的演进、快速抓住重点。

格式

Commit Message 的格式应当符合 类型: 描述类型(范围): 总结

类型

类型用于说明当前提交的变动的影响模式,通常定义如下:

  • 强调单一过程:
    • feat:新增逻辑代码
    • fix:修改已有的错误的逻辑代码
    • tests:新增测试代码
    • docs: 新增或修改文档内容
    • chore:杂项变动,通常是构建过程或辅助工具链
  • 一组过程带来的结果,通常避免附带逻辑变化:
    • style:格式化或代码风格变化
    • refactor:重构,改变逻辑代码的组织形式
    • perf:优化,降低逻辑的执行成本
  • 基于操作方式:
    • revert:回滚 commit
    • merge:合并其他分支
    • sync:同步其他分支上的 commit

以上三大类类型定义,使用的频繁程度依次递减,涵盖变动的宽泛程度依次递增。

范围

范围用来圈定变动的边界,通常和具体代码的组织形式强相关。编制和使用时应当遵循:

  • 范围中可以存在层级关系,但避免存在过细的层级划分,一般以 2 ~ 3 层为宜,因项目而异。
  • 不同类型的变动可以有不同的范围界定
  • 针对类型划分,第一大类必须包含范围信息,第二大类应当包含范围信息

总结

  • 总结是在类型和范围的基础上加以延申,以简洁的语言给出变动的概况。
  • 总结应当满足“言简意赅”的要求

变通

  • 在适应期内,格式规范的执行严格程度可以依类型的大类划分递减。

  • 在适应期内,我们可以放松对于 范围 部分的要求,直到:

    • 本项目有了清晰的模块划分实践
    • 模块可以相对简单地标示(有有效的缩写)
    • 团队成员习惯了标注范围这一做法

    在此之前,我们应当鼓励成员标注范围,并且将范围划分的混乱视作可接受的结果。