如何在不删除SCM分支的情况下移除Jenkins多分支流水线任务?
保留Git分支同时移除Jenkins多分支流水线条目
核心背景
明确两个不适用的配置:
- Orphaned Item Strategy:仅在Git分支被删除时才会清理对应流水线,不符合保留Git分支的需求
buildDiscarder配置:仅用于清理构建记录和构件,无法移除分支流水线本身
可行解决方案
方法1:标记分支流水线为不可用
- 进入目标分支流水线(
feature/Jenkins_Update)的页面,在左侧菜单栏找到Mark as Unavailable(标记为不可用)选项 - 标记后该分支会从多分支流水线的下拉列表中隐藏,且不会删除Git分支,后续需要恢复时可重新标记为可用
方法2:通过脚本控制台直接删除
- 进入Jenkins的脚本控制台(路径:Manage Jenkins → Script Console)
- 执行以下Groovy脚本,替换其中的
YOUR_MULTIBRANCH_JOB_NAME为你的多分支流水线名称:
def multibranchJob = Jenkins.instance.getItemByFullName("YOUR_MULTIBRANCH_JOB_NAME") def targetBranch = multibranchJob.getItem("feature/Jenkins_Update") if (targetBranch) { targetBranch.delete() println "目标分支流水线已成功删除" } else { println "未找到对应的分支流水线" }
- 执行完成后,该分支流水线会被彻底移除,且完全不影响Git仓库中的分支
方法3:通过分支过滤规则长期管理
- 进入多分支流水线的配置页面,找到Branch Sources下的Filter配置项
- 配置分支过滤规则:
- 可添加排除规则,直接排除
feature/Jenkins_Update这类不再需要展示的分支 - 或添加包含规则,仅保留
main、develop等需要持续维护的分支
- 可添加排除规则,直接排除
- 保存配置后,Jenkins会重新扫描SCM分支,仅展示符合过滤规则的流水线条目
内容的提问来源于stack exchange,提问作者Michael Williamson
相关产品推荐
相关产品推荐

