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

如何在GitLab CI中使用正则表达式排除指定分支?

解决GitLab CI排除指定分支的规则配置问题

你的正则表达式写错了,导致匹配逻辑完全不符合预期,这才会出现作业要么全跑要么全不跑的情况。

错误原因分析

你写的^feature\.*\/.*里,\.*是匹配0个或多个点,但你的目标分支是feature/issues-xxx,这里是斜杠/而不是点,所以这个正则根本匹配不到你想要的分支,自然起不到排除作用。

正确配置写法

要排除所有以feature/issues-开头的分支,正确的rules配置应该是:

rules:
  # 匹配以feature/issues-开头的分支,直接跳过作业
  - if: '$CI_COMMIT_BRANCH =~ /^feature\/issues-/'
    when: never
  # 其他所有分支都执行该作业
  - when: always

补充说明

  • 正则里的^feature\/issues-明确匹配**以feature/开头,后面紧跟issues-**的分支,完全符合你要排除的分支格式(比如feature/issues-70、feature/issues-771)。
  • 规则顺序很重要:先写排除规则,再写默认执行的规则,这样GitLab CI会按顺序判断,符合排除条件的分支直接跳过,其他分支正常执行作业。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:36:35