开源项目Git Commit规范与ChangeLog

2024-01-25 22:36

本文主要是介绍开源项目Git Commit规范与ChangeLog,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,conventional commit(约定式提交)

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

1.1 作用

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

1.2 提交格式

提交说明的结构如下:

<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例子

feat(规则上下线、构建、生效、仿真生效): 添加规则上下线功能 1. 规则上下线主流程,引擎正常订阅,fldl生成正常。 pass
2. 规则上下线,传入不存在的规则编号,异常提示。 pass提交人:xxx

1.3.2 fix例子

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 安装使用:

# 交互式初始化 推荐选择gitlab样式、standard模式
git-chglog --init

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

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

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效果:

这篇关于开源项目Git Commit规范与ChangeLog的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644820

相关文章

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实