You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置create-pull-request自动创建release分支到master回并PR的问题

问题根因

核心错误是create-pull-request Action的branch参数配置错误:

  • 这个参数指定的是Action用来生成PR的专属工作分支,Action运行时会强制重置该分支状态,基于配置的base分支重新构建提交内容。
  • 你当前把这个参数设置成了触发工作流的源release分支本身,Action执行时直接把原release分支重置到了master的提交点位,原本release分支上领先master的11个提交被覆盖,最终判定分支和master无差异,自然无法创建PR。从你贴的日志里Pushing pull request branch to 'origin/release/v1.2.3'、forced update的记录也能印证这个逻辑。
修正方案

按以下规则调整配置即可:

  • 给PR工作分支设置独立命名,绝对不能复用触发工作流的原有release分支
  • checkout步骤配置拉取全量提交历史,避免浅克隆导致分支提交对比异常
  • 可直接使用GitHub内置环境变量获取当前分支信息,减少冗余的shell解析步骤

修正后的可直接使用的工作流配置:

on:
  push:
    branches: 
    - release/*

jobs:
  release-mergeback:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: recursive
          fetch-depth: 0
      - name: Parse release version
        id: ver
        run: echo "num=$(echo ${GITHUB_REF_NAME} | awk -F'/' '{print $2}')" >> $GITHUB_OUTPUT
      - uses: peter-evans/create-pull-request@v4
        with:
          commit-message: Mergeback of Release ${{ steps.ver.outputs.num }} to master
          title: "[master] <- [${GITHUB_REF_NAME}] Mergeback Release ${{ steps.ver.outputs.num }}"
          branch: "automation/mergeback-release-${{ steps.ver.outputs.num }}"
          base: master
          body: |
            Autogenerated by Github Actions. 

            Mergeback of Release to ensure changes are persisted in Master.
配置说明
  • 上述配置运行时,Action会自动创建独立的临时分支承载PR内容,不会修改原有release分支的任何提交
  • 同一release分支后续有新推送时,Action会自动更新已存在的对应PR,不会重复生成新PR
  • fetch-depth: 0参数保证Action能拉到全量提交记录,正确识别release分支和master之间的差异

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:33:33