前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源项目Git Commit规范与ChangeLog

开源项目Git Commit规范与ChangeLog

作者头像
帐篷Li-物联网布道师
发布2024-03-20 08:12:23
2140
发布2024-03-20 08:12:23
举报

一,conventional commit(约定式提交)

Conventional Commits 是一种用于给提交信息增加人机可读含义的规范。它提供了一组用于创建清晰的提交历史的简单规则。

1.1 作用

  • 自动化生成 CHANGELOG
  • 基于提交类型,自动决定语义化的版本变更
  • 向项目相关合作开发者发送变更信心
  • 触发自动化构建和部署流程
  • 给开发者提供一个更加结构化的提交历史,便于减低对项目做贡献的难度

1.2 提交格式

提交说明的结构如下:

代码语言:javascript
复制
<type>(<scope>): <subject>
空行
[可选的正文]
空行
[可选的脚注]
1.2.1 Header

Header部分只有一行,包括三个字段: type(必需)、scope(必需)和subject(必需)。

(1)type 类型

type用于说明 commit 的类别,只允许使用下面7个标识:

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • build:构建过程或辅助工具的变动

(2)scope 范围

scope用于说明 commit 影响的范围,比如指标模板、规则上下线等等,视项目不同而不同。

(3)subject 主题

subject是 commit 目的的简短描述,不超过50个字符。

1. 以动词开头,使用第一人称现在时,比如change,而不是changed或changes

2. 第一个字母小写

3. 结尾不加句号(.)

1.2.2 Body 正文

Body 部分是对本次 commit 的详细描述,可以分成多行。

1. 需要简要的列出各种正向或者反向的测试场景,测试通过,填pass。

2. 增加修改人信息

1.3 例子

1.3.1 feat例子
代码语言:javascript
复制
feat(规则上下线、构建、生效、仿真生效): 添加规则上下线功能 

1. 规则上下线主流程,引擎正常订阅,fldl生成正常。 pass
2. 规则上下线,传入不存在的规则编号,异常提示。 pass
 
提交人:xxx
1.3.2 fix例子
代码语言:javascript
复制
fix(模型模块): 模型测试失败
 
1. 导入mar模型,包含衍生字段。 pass
2. 导入mar模型,不包含衍生字段。 pass
 
提交人:xxx

二,IDEA插件推荐

idea可以安装代码提交规范的插件。

  1. 安装插件

安装路径:File->Settings->Plugins->Marketplace->搜索Conventional Commit,点击安装即可。

  1. 提交时选择插件提交

提交的时候点击中间的小红点创建提交消息,根据对话框提示填写相关信息即可生成规范的提交消息

三,ChangeLog

3.1 自动生成ChangeLog工具

git-chglog:https://github.com/git-chglog/git-chglog

优点如下:

  • 高移植性(多平台、多环境支持);简单易用;
  • 高度灵活(可自定message format和CHANGELOG.md Template)

3.2 安装使用:

代码语言:javascript
复制
# 交互式初始化 推荐选择gitlab样式、standard模式
git-chglog --init

本地配置项目根目录下.chglog的内容:CHANGELOG.tpl.md和config.yml,具体含义参考以上官方文档

使用:打包机器或开发环境集成->规范化提交+release tag->数据积累后命令生成

代码语言:javascript
复制
EXAMPLE:
$ git-chglog
If <tag query>is not specified, it corresponds to all tags.Thisis the simplest example.

$ git-chglog 1.0.0..2.0.0
The above is a command to generate CHANGELOG including commit of 1.0.0 to 2.0.0.

$ git-chglog --output CHANGELOG.md
The above is a command to output to CHANGELOG.md instead of standard output.

CHANGELOG.md效果:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,conventional commit(约定式提交)
    • 1.1 作用
      • 1.2 提交格式
        • 1.2.1 Header
        • 1.2.2 Body 正文
      • 1.3 例子
        • 1.3.1 feat例子
        • 1.3.2 fix例子
    • 二,IDEA插件推荐
    • 三,ChangeLog
      • 3.1 自动生成ChangeLog工具
        • 3.2 安装使用:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档