91 lines
2.7 KiB
Markdown
91 lines
2.7 KiB
Markdown
|
|
# 自动化精选合并
|
|||
|
|
|
|||
|
|
`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"
|