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

Jenkins多分支流水线:如何将第二个Git仓库合并至默认仓库

解决Jenkins MultiBranch Pipeline多仓库克隆覆盖问题

问题核心:MultiBranch Pipeline默认会将Project1克隆到工作空间根目录,后续未指定目录的git checkout操作会直接覆盖根目录内容,导致Project1被替换。

以下是两种简便方案,实现Project1和Project2在工作空间中分别以独立文件夹共存:

方案一:用dir步骤指定克隆目录

通过dir步骤切换到目标子目录执行git克隆,确保Project2被克隆到Project2文件夹下,不会干扰已存在的Project1。

修改后的完整流水线脚本:

pipeline {
    agent {
       label 'agent'
    }

    stages {
        stage('Project1 checkout automatically') {
            steps {
                script {
                    echo "Project1 is cloned automatically by the given Jenkins configuration"
                }
            }
        }
        
        stage('Project2 checkout phase'){
            steps{
                dir('Project2') { // 指定克隆到当前工作空间下的Project2目录
                    git branch: 'master',
                        credentialsId: 'b9152824f',
                        url: 'https://git/Project2.git'
                }
            }
        }
    }
}

方案二:使用checkout步骤配置目标目录

如果需要更灵活的git扩展配置(如浅克隆、稀疏检出),可以用checkout步骤结合RelativeTargetDirectory扩展指定目标目录:

修改后的Project2阶段代码:

stage('Project2 checkout phase'){
    steps{
        checkout([
            $class: 'GitSCM',
            branches: [[name: '*/master']],
            userRemoteConfigs: [[url: 'https://git/Project2.git', credentialsId: 'b9152824f']],
            extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'Project2']]
        ])
    }
}

两种方案执行后,工作空间根目录下会同时存在Project1和Project2两个文件夹,各自保留对应仓库的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:17:42