如何配置GitHub Action工作流以排除Master分支的推送触发
如何配置GitHub Action工作流排除Master分支触发
嘿,这个需求很好实现,GitHub Actions的工作流触发规则里刚好有分支过滤的功能,给你两种靠谱的配置方式:
方法一:使用branches-ignore直接排除目标分支
这是最直观的写法,直接指定要忽略的分支:
name: 你的工作流名称 on: push: branches-ignore: - 'master' # 推送到master分支时不触发
这个配置会让工作流在推送到除了master之外的所有分支时自动运行,简单明了。
方法二:使用branches配合否定模式
如果你需要同时包含某些分支再排除特定分支,这种模式更灵活。语法是先写要包含的分支(用*表示所有),再用!前缀排除目标分支:
name: 你的工作流名称 on: push: branches: - '*' # 匹配所有分支 - '!master' # 排除master分支
⚠️ 注意:否定规则必须放在肯定规则后面,因为GitHub会按顺序匹配分支,先匹配到的规则生效。如果后续还有其他要排除的分支,直接追加!other-branch即可。
额外注意事项
- 分支名是大小写敏感的,如果你的默认分支是
main而不是master,记得对应修改分支名; - 如果只想针对分支推送触发(排除标签推送),可以加上
tags-ignore: ['*'],避免推送标签时误触发工作流; - 如果你有更复杂的分支匹配需求(比如匹配前缀为
feature/的分支同时排除master),可以结合通配符和否定模式,比如:branches: - 'feature/**' - 'bugfix/**' - '!master'
内容的提问来源于stack exchange,提问作者bibi
相关产品推荐
相关产品推荐

