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

如何在Jenkins Pipeline中从Git SCM检出指定commit提交?

问题解决方法

你之前使用的branches(master: ${COMMIT_SHA})属于语法错误,branches配置项仅支持传入字符串/字符串数组格式的Git引用值(支持分支名、标签名、完整/短Commit SHA),不接收键值对格式输入。

以下是可正常运行的修改后配置:

parameters {
        stringParam("COMMIT_SHA", "", "[Required] Short SHA of the commit used to build the image")
    }
definition {
        cpsScm {
            scm {
                git {
                    remote {
                        url("https://github.mywork")
                        credentials("mytoken")
                    }
                    // 直接使用传入的COMMIT_SHA参数作为检出目标
                    branches(params.COMMIT_SHA)
                    extensions {
                        // 可选配置:将本地工作区关联到master分支,符合你原本的分支使用习惯
                        localBranch("master")
                        // 可选配置:关闭浅克隆,避免仓库设置了浅克隆策略时找不到对应Commit SHA
                        cloneOptions {
                            shallow(false)
                        }
                    }
                }
            }
            scriptPath("azure/pipelines/build_service.jenkins")
        }
    }

补充说明

  • Git Commit SHA全局唯一,只要传入的SHA属于该仓库的提交,就会精准检出对应版本,不会拉取到其他分支的代码
  • 如果你需要保留默认拉取master最新代码的能力,可以将COMMIT_SHA参数的默认值设置为master,不传参数时会默认拉取master分支最新提交

内容的提问来源于stack exchange,提问作者prabhakar Reddy G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:27:01