带有Jenkins pipeline attaches选项的Git插件——强制自动获取Git

带有Jenkins pipeline attaches选项的Git插件——强制自动获取Git,git,jenkins,jenkins-pipeline,Git,Jenkins,Jenkins Pipeline,我注意到git插件的行为在自由风格(通常)作业和管道作业之间是不同的 最近,我一直在将工作迁移到管道。 git插件在自由风格作业中表现如下 C:\Program Files\Git\bin\git.exe fetch --no-tags --progress -- git@gitlabs.xxxx:xxxx/xxxx.git +refs/heads/*:refs/remotes/origin/* # timeout=30 另一方面,git插件通过管道执行以下操作 C:\Program File

我注意到git插件的行为在自由风格(通常)作业和管道作业之间是不同的

最近,我一直在将工作迁移到管道。 git插件在自由风格作业中表现如下

C:\Program Files\Git\bin\git.exe fetch --no-tags --progress -- git@gitlabs.xxxx:xxxx/xxxx.git +refs/heads/*:refs/remotes/origin/* # timeout=30
另一方面,git插件通过管道执行以下操作

C:\Program Files\Git\bin\git.exe fetch --no-tags --force --progress -- git@gitlabs.xxxx.xxxx:xxxx.git +refs/heads/*:refs/remotes/origin/* # timeout=30
通过管道,git插件附加了--force选项。对于我的工作,它需要局部修改,很少被更改

所以我想去掉这个--force选项。有办法把它去掉吗? git的管道代码是由snippet generator生成的,代码如下所示

checkout changelog: false, poll: false, 
scm: [$class: 'GitSCM', 
branches: [[name: 'refs/heads/master']], browser: [$class: 'GitLab', repoUrl: 'https://gitlabs.xxxx.xxxx/xxxx.git', version: '10.8'], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', depth: 0, noTags: true, reference: '', shallow: false, timeout: 30]], 
submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxxx-xxxx-xxxx-xxxx-xxxx', url: 'git@gitlabs.xxxx.xxxx:xxxx.git']]] 

谢谢,

您可以像这样执行bat命令:

bat label: '', script: 'C:\\Program Files\\Git\\bin\\git.exe fetch
--no-tags --progress -- git@gitlabs.xxxx:xxxx/xxxx.git +refs/heads/*:refs/remotes/origin/* # timeout=30' 

但是--force命令不会擦除已经缓存的存储库并再次克隆它。
--force
选项仅适用于不以+选项开头的
refspecs

谢谢你的有用建议,这是哥伦布的蛋,我将尝试这种方法。也许scm类实现的方式并不存在。