如何仅当branchA与main分支存在差异时创建合并PR?
解决分支无差异时创建PR报错的问题
可以通过先检查分支差异,再条件执行PR创建步骤的方式解决这个问题,具体实现如下:
- 添加分支差异检查步骤
在创建PR的步骤前,先执行git命令对比branchA和main的差异,将结果存入输出变量供后续判断:
- name: Check for branch differences id: check_diff run: | git fetch origin main if git diff --quiet main..branchA; then echo "has_diff=false" >> $GITHUB_OUTPUT else echo "has_diff=true" >> $GITHUB_OUTPUT fi
- 给PR创建步骤添加条件判断
修改原有的PR创建步骤,仅当检测到分支存在差异时才执行:
- name: create pull request if: steps.check_diff.outputs.has_diff == 'true' run: gh pr create -B main -H branchA --title 'Merge branchA into main' --body 'Foo' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
说明
git diff --quiet main..branchA会静默检查分支差异:无差异时返回0,有差异时返回非0值,以此来设置has_diff变量。- 通过GitHub Actions的输出变量传递判断结果,结合条件表达式控制步骤执行,避免无差异时触发PR创建报错。
内容的提问来源于stack exchange,提问作者Shafique Jamal
相关产品推荐
相关产品推荐

