使用git命令导出项目_git自动生成changelog及项目版本管理

版本管理

1.version类别介绍

每个npm包中都有一个package.json文件,如果要发包的话,package.json中的version就是版本号了。

version字段结构为:'0.0.0-0'

分别代表:大号.中号.小号-预发布号,对应majon.minor.patch-prerelease

下面来看看npm中version的类别及描述。

major

如果没有预发布号,则直接升级一位大号,其他位都置为0

如果有预发布号:

中号和小号都为0,则不升级大号,而将预发布号删掉。即2.0.0-1变成2.0.0,这就是预发布的作用

如果中号和小号有任意一个不是0,那边会升级一位大号,其他位都置为0,清空预发布号。即 2.0.1-0变成3.0.0

minor

如果没有预发布号,则升级一位中号,大号不动,小号置为空

如果有预发布号:

如果小号为0,则不升级中号,将预发布号去掉

如果小号不为0,同理没有预发布号

patch

如果没有预发布号:直接升级小号,去掉预发布号

如果有预发布号:去掉预发布号,其他不动

premajor

直接升级大号,中号和小号置为0,增加预发布号为0

preminor

直接升级中号,小号置为0,增加预发布号为0

prepatch

直接升级小号,增加预发布号为0

prerelease

如果没有预发布号:增加小号,增加预发布号为0

如果有预发布号,则升级预发布号

2.version 运用

执行命令npm version可以自动更改package.json中的版本号。

比如,package.json包中的version是1.1.1,然后执行如下命令:

npm version prerelease -m "这里你可以添加此次更新版本号的描述"

复制代码

执行完之后,package.json的版本号则会变成1.1.1-0,同时,在git中会多一个commit log。

值得注意的是,执行npm version必须保证工作目录是干净的,没有任何未提交的文档,否则会报错。

git提交规范

一个项目都是由很多人一起合作,然而每个人的开发习惯,提交格式并不统一,这对于统计bug 和 需求有一定困难。

所以,commit message 规范就格外重要。

格式化commit的好处

1.提供更多的历史信息,方便快速浏览。

2.可以过滤某些文档,方便快速查找

3.可以直接从commit生成change log。

commit message的格式

类别: 做了什么 简短描述做了什么

详细描述做了什么(可省略)

复制代码类别type:

feat:新功能

fix:修补

docs:文档

style:格式

refactor:重构(既不是新增,也不是代码变动)

test:增加测试

chore:构建过程中或辅助工具的变动。

例如:

fix: bug(123) 修补了…………

修改了....

feat: 需求(123) 新增了某某功能

详细描述某某功能(可省略)

复制代码

自动生成change log

如果所有的commit都符合格式,那么发布新版本时,change log 就可以用脚本自动生成。

conventional-changelog 就是生成 Change log 的工具。

先命令全局安装:

$ npm install -g conventional-changelog-cli

复制代码

然后进入项目,执行命令:

$ cd my-project

$ conventional-changelog -p angular -i CHANGELOG.md -s

复制代码conventional-changelog -p angular -i CHANGELOG.md -w

则会在命令行中生成log,并不会生成文件

上面命令不会覆盖CHANGELOG.md文档,只会在文档前面新增,如果你想生成所有发布的 Change log,要改为运行下面的命令:

$ conventional-changelog -p angular -i CHANGELOG.md -s -r 0

复制代码

如若你不需要手动修改CHANGELOG.md文档,可以自动提交CHANGELOG.md文档:

conventional-changelog -p angular -i CHANGELOG.md -s && git commit -m "docs: 更改CHANGELOG.md"

复制代码

每次执行这么长的命令,很难,我们可以配置在npm中

{

"scripts": {

"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"

}

}

复制代码

下次运行直接命令:npm run changelog即可。

这时候,可以看见,项目中就会多了一个CHANGELOG.md文档,如果你的提交不符合规范,那么在最开始使用的时候,这个文档里,可能什么都没有。

而且,要注意的是,在我们每次changelog之前,都必须要使用npm version升级版本,否则,commit一直都会有之前的记录。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值