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

Jenkins声明式流水线Git插件克隆GitHub代码失败求助

问题排查与解决步骤

1. 检查Jenkins Git插件的代理设置

Jenkins Git插件默认可能使用Jenkins全局代理配置,而非代理节点本地的代理规则。你可以:

  • 进入Jenkins全局配置(Manage Jenkins → Configure System),找到Git板块,检查是否设置了HTTP/HTTPS代理
  • 如果节点本地无需代理,确保Git插件的代理配置为空,或勾选“使用代理节点的系统代理设置”

2. 强制Git插件使用节点本地的Git客户端

直接用sh git clone能成功,说明节点本地的Git客户端是正常的。你可以让Jenkins Git插件调用这个版本的Git:

  • 进入Jenkins全局工具配置(Manage Jenkins → Global Tool Configuration),找到Git板块
  • 添加一个Git安装项,取消“Install automatically”勾选,填入节点本地Git的路径(比如/usr/bin/git)
  • 在流水线的tools部分指定使用这个Git安装:
pipeline {
    agent any
    tools {
        git '本地Git路径配置的名称'
    }
    stages {
        stage('Clone') {
            steps {
                checkout scm: [
                    $class: 'GitSCM',
                    branches: [[name: 'refs/tags/5.9.0']],
                    userRemoteConfigs: [[url: 'https://github.com/ARM-software/CMSIS_5.git', credentialsId: '你的凭证ID']]
                ],
                extensions: [[$class: 'CloneOption', shallow: true, depth: 1]]
            }
        }
    }
}

3. 修正凭证配置细节

  • 确保你的凭证是**用户名+GitHub个人访问令牌(PAT)**类型(因为使用HTTPS URL),而非SSH密钥
  • 核对凭证ID是否完全正确,Jenkins的凭证ID区分大小写
  • 如果是公共仓库,可直接去掉credentialsId参数,无需配置凭证

4. 检查Git插件版本与兼容性

  • 将Jenkins的Git插件更新到最新稳定版,旧版本可能存在TLS协议支持不足的问题
  • 确保节点本地的Git版本不低于2.20,低版本Git对TLS 1.2/1.3的支持可能存在缺陷

5. 显式指定Git使用TLS协议

在checkout步骤前添加sh命令,强制Git使用TLS 1.2:

stage('Pre-Clone') {
    steps {
        sh 'git config --global http.sslProtocol TLSv1.2'
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:26:10