如何撤销semantic-release发布的错误版本并重新发布正确版本?
修复semantic-release错误发布版本操作指南
不能仅通过删除Github上的错误版本完成撤包,该操作无法同步下架npm的已发版本,还会打乱semantic-release的版本对应关系,需按以下步骤完整操作:
步骤1:下架错误的次版本
- npm端处理:
若版本发布未超过72小时,执行命令直接撤包:npm unpublish <your-package-name>@<wrong-minor-version> --force
若已超过72小时无法撤包,执行命令标记废弃:npm deprecate <your-package-name>@<wrong-minor-version> "该版本包含未声明的破坏性变更,已废弃,请升级至最新主版本" - Github端处理:
先删除远程错误标签:git push origin :v<wrong-minor-version>
再进入Github仓库的Releases页面,找到对应错误版本的发布记录,手动删除即可。
步骤2:触发正确的主版本发布
推荐使用无历史修改的空提交方式,不会影响仓库正常状态和其他协作者的使用:
- 在本地主分支执行命令提交空提交,携带
breaking change标识:
git commit --allow-empty -m "chore: 发布正确主版本 BREAKING CHANGE: 此前提交的<具体破坏性变更内容>属于不兼容更新,本次作为主版本正式发布"
- 将该提交推送到远程主分支,CI触发semantic-release后会自动识别到breaking change标识,生成正确的主版本号并同时发布到Github和npm。
注意事项
- 全程不要修改已推送到远程主分支的已有提交历史,避免协作者拉取代码时出现冲突
- 若已有用户安装了错误的次版本,建议在主版本的更新日志、README中补充废弃提醒,降低用户踩坑概率
- 后续提交破坏性变更时,可在提交标题末尾加
!标识(比如feat!: 重构请求参数结构),配合提交正文的BREAKING CHANGE脚注双重校验,避免漏标。
内容的提问来源于stack exchange,提问作者Carven
相关产品推荐
相关产品推荐

