0

我对管道很陌生,首先为我的公司尝试,所以如果这个问题有点不对,请原谅。

我有一个 Git 分支,我们将其称为“2020Release38”,这是所有工程师检查的中心分支。我需要将旧分支“2019Release37”中的文件夹复制到工作区,并将文件夹重命名并放置在“2020Realease38”文件夹中。该文件夹需要由稍后在管道中调用的 exe 使用。两个分支都在同一个仓库中。

我尝试使用自由式项目在管道之外进行此操作,设置多个 SCM 并添加“2019Release37”,第二个 SCM 签出到子目录。但是,这有效,A)它复制了分支的全部内容,B)在轮询 SCM 时我无法弄清楚如何只查看“2020Release38”,以及 C)以某种方式(我确定是用户错误)我创建了一个无限的构建循环。对我来说,这似乎是错误的,因为我不需要检查文件夹,而只需从分支中复制。

任何帮助将不胜感激。目前我已经完成了“2020Release38”分支管道脚本代码,见下文。不知道从哪里开始,或者我是否应该使用不同的步骤来实现我正在寻找的东西。

checkout([$class: 'GitSCM', 
branches: [[name: '2020Release38']], 
doGenerateSubmoduleConfigurations: false, 
extensions: [], 
submoduleCfg: [], 
userRemoteConfigs: [[credentialsId: 'TFSBuildUser', url: 'https://some-url']]])
4

1 回答 1

0

所以我知道您想从存储库中签出某个分支“X”,将所有文件复制到另一个分支“A”,对吗?

您可以使用该git步骤签出存储库和stash/unstash来复制文件:

git branch: 'X', url: 'my-git-url.git'
stash includes: 'foldername/**', name: 'oldFolder'
deleteDir()

git branch: 'A', url: 'my-git-url.git'
unstash "oldFolder"
sh "mv oldFolder newFolder"
于 2019-12-05T00:40:53.407 回答