git pr/mr 提交规范

说在前面

我们希望每个 mr 尽量⽐较单⼀,不要涉及太多复合的内容。这样便于 review,必要时也便于回滚。
这⾥定义了 mr 提交时,title 和 message 的⼀个规范,如果可以的话,最好每个 commit 都遵循这个规范。

定义规范的好处是:

  • 提供更多的信息,⽅便排查与回滚;
  • 过滤关键字,迅速定位.

mr title 的规范

形式化定义:

<type>(<scope>): <subject>

其中,各个域的说明如下:

  • type:⽤于说明这次 mr/commit 的类别,只允许使⽤下⾯ 7 个标识(都是⼩写):

    • feat:新功能(feature)
    • fix:修补bug
    • docs:⽂档(documentation)
    • style: 格式(不影响代码运⾏的变动)
    • refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
    • perf: 性能优化
    • test:增加测试
    • chore:构建过程或辅助⼯具的变动,例如 requirement 的变动可以放到这⾥
  • scope:⽤于说明 mr/commit 影响的范围,⽐如数据层、控制层、视图层等等,视项⽬不同⽽不同。
    例如,对于 phoenix,这⾥可以是 all/base/train-worker/model-manager/ml-service等。

  • subject:是 mr/commit ⽬的的简短描述,不超过50个字符。⼀般来说,遵循以下规则:

    • 以动词开头,使⽤第⼀⼈称现在时,⽐如 change,⽽不是 changed 或 changes
    • 第⼀个字⺟⼩写
    • 结尾不加句号(.)

message的规范

message 的 body 部分是对本次 mr/commit 的详细描述,说明代码变动的动机,以及与以前⾏为的对⽐。

可以分成多⾏,第 2⾏是空⾏。可以包括的内容有:

  • 可以分点详细列出
  • 关联 issue
  • at 其他相关的同学

相关⼯具⽀持

  • commitizen
  • validate-commit-msg

版权声明:本文为xiligey1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。