首页 > 解决方案 > git clone 没有使用 SCM 的历史记录

问题描述

我们的项目很大,我们希望避免克隆所有 git 历史记录。

是否可以在git cloneJenkins中depth=1使用checkout scm

如果可能的话,我找不到任何关于如何配置SCM或如何传递参数的文档。

补充:
找到文档

https://jenkins.io/doc/pipeline/steps/workflow-scm-step/#code-checkout-code-general-scm

类型:int
depth(可选)
设置浅克隆深度,这样 git 只会下载项目最近的历史,当你只想访问最新版本的存储库时节省时间和磁盘空间。

但尚不清楚如何将其传递给checkout scm

标签: gitjenkins-pipeline

解决方案


如果您使用脚本化管道,那么您可以自定义checkout scm看起来或多或少像这样:

node {
    checkout([
        $class: 'GitSCM',
        branches: scm.branches,
        doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
        extensions: scm.extensions,
        userRemoteConfigs: scm.userRemoteConfigs,
        depth: 1
    ])
}

如果您使用声明式管道,那么您需要转到您的管道作业配置,并在“行为”部分中添加Git -> 高级克隆行为并标记Shallow clone并将Shallow clone depth设置为1

在此处输入图像描述


推荐阅读