能否在develop分支使用release-it?版本发布异常求助
问题原因及解决办法
核心原因
release-it 默认会基于当前分支的最近Git标签计算版本跨度、生成变更日志。你的develop分支最近的标签和1.8.0绑定,而master的4.0.0标签不在develop的分支历史跟踪范围内,导致工具错误地从1.8.0标签开始对比,把所有已合并到master的历史提交都纳入了变更日志。手动改package.json版本没用,是因为release-it优先以Git标签作为版本基准,会忽略手动修改的package.json版本号。
解决步骤
1. 临时解决(单次发布)
在develop分支执行命令时,强制指定对比的基准标签为生产环境的4.0.0标签:
npm run release -- --git.compare v4.0.0 --release-as 4.1.0
这样工具会只计算v4.0.0到当前develop分支的提交,生成正确的变更日志,同时直接发布4.1.0版本。
2. 长期解决(修改配置)
修改项目根目录的.release-it.json(或package.json里的release-it字段),配置默认对比基准为master分支的最新标签:
{ "git": { "compare": "origin/master", "tagName": "v${version}", "requireUpstream": true } }
compare设为origin/master:让release-it默认对比当前分支与远程master的差异requireUpstream:确保当前分支已关联远程分支,避免本地分支与远程不同步导致的基准错误
3. 回滚说明
在release-it提示Commit (Release X.X.X)? (Y/n)时,只要输入n终止操作,所有本地临时修改(比如自动更新的package.json、生成的CHANGELOG)都可以通过以下命令完全回滚:
git reset --hard
不会对远程仓库产生任何影响,完全不用担心操作风险。
内容的提问来源于stack exchange,提问作者Giuseppe
相关产品推荐
相关产品推荐

