Git做版本管理及CHANGELOG

版本管理和CHANGELOG

规范化的提交信息除了能很好描述项目的修改,还有一个很好的作用就是能根据提交记录来生成CHANGELOG.MD和自动生成版本号等功能。

standard-version

一个用于生成CHANGELOG.md和进行SemVer(语义化版本号)发版的命令行工具

主要功能:

  • 自动修改最新版本号,可以是package.json或者自定义一个文件
  • 读取最新版本号,创建一个最新的git tag
  • 根据提交信息,生成CHANGELOG.md
  • 创建一个新提交包括 CHANGELOG.mdpackage.json

语义化版本控制(SemVer)

先简单了解下什么是语义化的版本控制,其是由GitHub发起的一份用于规范版本号递增的规则,

版本格式

主版本号.次版本号.修订号,版本号递增规则如下:

  • 主版本号(major):当你做了不兼容的 API 修改,
  • 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature版本,
  • 修订号(patch):当你做了向下兼容的问题修正,可以理解为Bug fix版本。

先行版本号可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

先行版本

当即将发布大版本改动前,但是又不能保证这个版本的功能 100% 正常,这个时候可以发布先行版本:

  • alpha: 内部版本
  • beta: 公测版本
  • rc: 候选版本(Release candiate)

比如:1.0.0-alpha.0,1.0.0-alpha.1,1.0.0-rc.0,1.0.0-rc.1等。

standard-verstion 生成的CHANGELOG只会包含feat,fix,BREACK-CHANGE类型的提交记录

使用

npm i --save-dev standard-version

添加npm script,完整的命令如下。

{scripts: {"release": "standard-version","release:alpha": "standard-version --prerelease alpha","release:rc": "standard-version --prerelease rc","release:major": "npm run release -- --release-as major","release:minor": "npm run release -- --release-as minor","release:patch": "npm run release -- --release-as patch"}
}

执行过后会修改 package.version 并修改CHANGELOG 文件。

完整的package.json

commitizen + cz-conventional-changelog + commitlint +standard-version

{"name": "blog","version": "1.0.0","description": "blog","main": "index.js","scripts": {"start": "npm run dev","release": "standard-version","release:alpha": "standard-version --prerelease alpha","release:rc": "standard-version --prerelease rc","release:major": "npm run release -- --release-as major","release:minor": "npm run release -- --release-as minor","release:patch": "npm run release -- --release-as patch"},"devDependencies": {"@commitlint/cli": "^17.6.6","@commitlint/config-conventional": "^17.6.6","commitizen": "^4.2.2","cz-conventional-changelog": "^3.3.0","standard-version": "^9.1.0"},"config": {"commitizen": {"path": "cz-conventional-changelog"}},"commitlint": {"extends": ["@commitlint/config-conventional"]}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部