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

如何在Jenkinsfile中获取关联Bitbucket仓库的所有分支信息?

在Jenkinsfile中获取Bitbucket Server远程仓库所有完整分支列表的方法

其实这个问题的核心是:Jenkins多分支项目默认只会克隆当前触发构建的分支的浅拷贝,不会拉取所有分支的信息,所以你得先让Jenkins把远程仓库的所有分支引用都拉下来,再去获取列表。

给你一个简化版的Jenkinsfile示例,直接就能用:

pipeline {
  agent any
  stages {
    stage('拉取并列出所有远程分支') {
      steps {
        script {
          // 第一步:拉取所有远程分支的最新引用,同时清理无效的旧分支
          sh 'git fetch --all --prune'
          
          // 第二步:获取所有远程分支的完整名称,过滤掉无用的HEAD引用
          def allRemoteBranches = sh(
            script: 'git branch -r | grep -v HEAD',
            returnStdout: true
          ).trim().split('\n')
          
          // 第三步:在控制台打印分支列表
          echo '=== 远程仓库所有完整分支列表 ==='
          allRemoteBranches.each { branchName ->
            echo "* ${branchName}"
          }
        }
      }
    }
  }
}

给你拆解下关键部分:

  • git fetch --all --prune:这一步很重要,它会让Jenkins拉取Bitbucket Server上所有分支的最新信息,同时删掉那些远程已经不存在的分支引用,避免输出里出现无效分支。
  • git branch -r | grep -v HEAD:git branch -r是列出所有远程分支,grep -v HEAD是过滤掉远程仓库默认的HEAD指向(这个不是实际的分支,所以不需要显示)。
  • 用sh(returnStdout: true)把命令的输出捕获下来,转成字符串后分割成列表,再循环打印每个分支,这样控制台日志里就能清晰看到所有分支了。

如果你的Jenkins agent配置了多个远程仓库(不过一般都是origin),可以把命令改成git branch -r | grep origin | grep -v HEAD,确保只显示Bitbucket Server那边的分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:27:56