用途:解决 CDS 多包版本锁定仓库在 rebase 或 merge 时产生的版本文件冲突,范围仅限 packages/<pkg>/package.json 的 "version" 字段和 packages/<pkg>/CHANGELOG.md 顶部版本条目;其他文件冲突必须停止并上报用户。
主要能力:以 origin/master 的版本为最新,识别分支版本提交的 bump 类型(patch/minor/major),在 master 版本上重新应用同一 bump 得到解决版本;CHANGELOG 将分支条目置于顶部(使用解决版本与当天日期),master 原有条目原样保留在下方;完成后运行格式化。
使用方式:先 git status 确认范围;用 git show <version-commit> -- '**/package.json' 判断 bump 类型;用 git show origin/master:packages/<pkg>/package.json | grep '"version"' 读取 master 版本;更新各 package.json 版本并检查内部依赖是否需同步;解决 CHANGELOG 后删除冲突标记,用 grep 验证无残留;git add 后以 GIT_EDITOR=true git rebase --continue 继续(merge 则 git commit --no-edit);最后 yarn nx format:write。若版本计划可恢复,优先取 master 侧并重跑 yarn release。
适用场景:CDS 的 cds 发布组(web、mobile、common、mcp-server)版本锁定的 rebase/merge 冲突。
限制:仅处理上述两类文件;不得修改已有提交信息;rebase 会重写历史,需 force push(git push --force-with-lease),未获要求不要推送;自动发现的冲突须先经用户确认再处理。