# 自动化精选合并 `npm run other:cherry-pick` 可自动将带有特定标签的拉取请求精选合并至**当前分支**。 该功能在WordPress主要版本发布时尤为实用,因为脚本默认会查找带有`Backport to WP Beta/RC`标签的已合并拉取请求。 您也可以通过传递自定义标签作为第一个参数,在不同场景中使用此功能。具体示例可参阅本文档末尾的Gutenberg插件发布案例。 运行`npm run other:cherry-pick`会出现以下提示: ``` 当前位于 "wp/6.2" 分支 本脚本将执行以下操作: • 将标记为"Backport to WP Beta/RC"的已合并PR精选合并至此分支 • 询问是否推送该分支 • 在每个PR中添加注释 • 移除每个PR的标签 后两项操作将使用您关联至GitHub CLI(gh命令)的账户执行 是否继续?(Y/n) ``` 同意后将会执行以下流程: ``` 开始逐个执行精选合并.. $ git pull origin wp/6.2 --rebase... $ git fetch origin trunk... 发现以下待精选合并的PR: #41198 – 站点编辑器:设置样式预览最小宽度 正在获取提交ID... 完成! #41198 – 860a39665c318d33027d – 站点编辑器:设置样式预览... 开始逐个执行精选合并... 第一轮精选合并: 精选提交:afe9b757b4 对应PR:#41198 – 站点编辑器:设置样式预览... 精选合并完成! 执行结果: 成功精选合并 1 个PR 合并失败 0 个PR 即将推送至 origin/wp/6.2 是否继续?(Y/n) ``` 本次运行成功!此时您可以确认是否精选合并了正确的PR。 如果精选合并出现冲突怎么办?脚本会继续处理其他PR并自动重试。 若部分PR仍合并失败,脚本将跳过这些PR并告知需要手动解决冲突的节点。 无论哪种情况,当您通过精选合并阶段后: ``` 正在推送至 origin/wp/6.2 添加注释并移除标签... 41198: 已将此PR精选合并至wp/6.2分支以便纳入下一版本:afe9b757b4 完成! ``` 注释功能为可选操作,仅当您安装[`gh`命令行工具](https://cli.github.com/)时可用。 ### 能否使用`Backport to WP Beta/RC`之外的标签? 可以!只需将其作为第一个参数传递: ``` npm run other:cherry-pick "其他标签" ``` ### 如何用于Gutenberg插件发布? ``` # 切换到发布分支 git checkout release/X.Y # 精选合并所有带有相关回溯标签的已合并PR npm run other:cherry-pick "Backport to Gutenberg RC" ``` ### 未来改进方向 未来有望实现根据当前所选分支自动匹配对应标签: * release/X.Y - 插件发布分支 → "Backport to Gutenberg RC" * wp/X.Y - WordPress发布分支 → "Backport to WP Beta/RC"