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

如何让同一Commit在不同分支触发GitHub Actions工作流重复运行?

解决同一Commit推送到不同分支时GitHub Actions工作流不触发的问题

GitHub Actions默认会跳过已在仓库其他分支执行过的相同Commit SHA的工作流运行——它通过Commit SHA和工作流配置判断是否已有完成的运行。要实现同一Commit推送到不同分支时重新触发工作流,可通过以下两种方法解决:

方法1:为工作流添加分支相关的唯一标识

修改工作流文件的名称,将分支名纳入名称的一部分,让GitHub将不同分支的工作流视为独立实例:

name: CI - ${{ github.ref_name }}
on:
  push:
    branches: ['**'] # 匹配所有分支

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # 这里添加你的构建、测试等步骤

每个分支的工作流名称(如CI - main、CI - feature-branch)会不同,GitHub会分别触发运行,不会因为Commit SHA相同而跳过。

方法2:配置并发组区分分支与Commit的组合

通过concurrency字段定义基于分支和Commit SHA的唯一并发组,确保不同分支的同一Commit被视为独立的运行任务:

name: CI
on:
  push:
    branches: ['**']

concurrency:
  # 用分支引用和Commit SHA组合作为并发组ID
  group: ${{ github.ref }}-${{ github.sha }}
  # 禁止取消正在进行的运行(可选,根据需求调整)
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # 你的工作流步骤

这个配置会让GitHub认为不同分支下的同一Commit属于不同的并发组,从而允许重新触发工作流。

注意事项

  • 确保工作流文件在目标分支上的内容一致,否则分支间的配置差异也可能导致触发行为变化。
  • 私有仓库使用这些配置不会额外产生费用,仅会增加工作流运行次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:37:55