title: "自动化精选合并" post_status: publish comment_status: open taxonomy: category: - gutenberg-docs post_tag: - Code - Contributors - Repos


自动化精选合并

npm run other:cherry-pick 可自动将带有特定标签的 Pull Request 精选合并到当前分支

这对于主要的 WordPress 版本发布特别有用,因为默认情况下脚本会查找带有 Backport to WP Beta/RC 标签且已合并的 Pull Request。

您也可以通过传递自定义标签作为第一个参数,在不同场景中使用它。请参阅本文档末尾的 Gutenberg 插件发布示例。

运行 npm run other:cherry-pick 会出现以下提示:

您当前在 "wp/6.2" 分支。
本脚本将:
• 将标记为 "Backport to WP Beta/RC" 的已合并 PR 精选合并到此分支
• 询问您是否要推送此分支
• 在每个 PR 上添加评论
• 从每个 PR 中移除标签

后两个操作将使用您链接到 GitHub CLI(gh 命令)的
GITHUB 账户来执行

是否继续?(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 已被精选合并。

如果精选合并未能顺利应用怎么办?脚本会应用其余部分并重试。 如果某些精选合并仍然失败,脚本会跳过它们并告知您哪些冲突需要手动解决。

无论哪种情况,一旦您通过精选合并阶段,将发生以下操作:

推送到 origin/wp/6.2
添加评论并移除标签...
  41198:我已将此 PR 精选合并到 wp/6.2 分支,以便将其包含在下一个版本中:afe9b757b4
完成!

评论部分是可选的,并且只有在您安装了 gh 命令行工具 时才可能执行。

我可以使用 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"

未来改进

未来,如果脚本能根据当前所选分支自动选择相关标签就更好了: