如何使用Maven Release Plugin基于指定Tag创建Hotfix分支?
基于Tag执行
mvn release:branch创建Hotfix分支的正确方案 直接指定基准Tag(无需提前检出/创建临时分支)
这是最优解决方案,无需切换分支、也不会产生多余的临时分支提交,直接通过插件内置的-Dtag参数指定要作为创建基准的Tag即可。
操作步骤
- 先拉取全量远端Tag到本地,确保目标Tag存在:
git fetch --tags - 不需要切换到Tag或创建临时分支,直接在任意本地正常分支(如master/main)执行如下命令,在原有参数基础上新增
-Dtag=你的目标Tag名即可:mvn release:branch -Dtag=project-1.2.3 -DbranchName="project-1.2.3-1-SNAPSHOT" -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false -DreleaseVersion="1.2.3-1-SNAPSHOT"
该命令执行后,插件会直接从project-1.2.3Tag创建名为project-1.2.3-1-SNAPSHOT的新分支,自动更新新分支内的版本为指定值并提交,全程不会修改你当前所在的工作分支,也不会产生冗余的临时分支提交。
检出Tag方式的优化操作
如果习惯先检出Tag再操作,可按如下流程规避临时分支多余提交的影响:
- 基于目标Tag创建临时分支并切换:
git checkout -b temp-tag-branch project-1.2.3 - 执行你原有配置的
release:branch命令,完成目标Hotfix分支的创建 - 切换回其他常规分支,直接删除临时分支即可:
git checkout main && git branch -D temp-tag-branch
插件向临时分支提交的变更不会影响最终生成的Hotfix分支,直接删除临时分支无任何副作用。
异常说明
直接检出Tag后执行命令报错是Maven Release插件的内置校验规则导致的:插件要求工作副本必须处于正常的本地分支(非分离头指针状态),避免提交丢失。
内容的提问来源于stack exchange,提问作者Peter Kronenberg
相关产品推荐
相关产品推荐

