git 如何在Azure Devops中的两次提交之间获取文件

3phpmpom  于 2022-12-21  发布在  Git
关注(0)|答案(2)|浏览(166)

有没有办法在两次提交之间获取所有文件?
我试着用

git diff <commitFrom>  <commitTo> Scripts/**/*.sql

基本上是为了以后存档

git archive --output=artifact.zip HEAD (git diff <commitFrom>  <commitTo> UpdateScripts/**/*.sql)

我得到空的artifact.zip文件。
此外,我尝试使用Git Exec新建SQL文件,但我得到

Exception calling "DownloadString" with "1" argument(s): "Illegal characters in path."

什么是最好的方式下载所有文件添加从特定提交到最新?
Azure Devops是否有任何现有扩展?
我怎样才能把所有文件都作为db构建输出的工件呢?

aydmsdu9

aydmsdu91#

要添加所有文件,可以将--diff-filter=Agit diff--name-only一起使用,以仅获取文件名

git diff --diff-filter=A --name-only sha1..sha2 "Scripts/**/*.sql"

"是为了避免使用shell进行扩展

55ooxyrt

55ooxyrt2#

Azure Devops是否有任何现有扩展?
是的。我建议您使用分机号:Git Copy Diff获取提交之间所有更改的文件并将其添加到文件夹。
以下是使用该任务的步骤:
步骤1:在比较提交中添加git标签。
步骤2:在任务中定义当前提交和比较提交的标签。
例如:

- task: GitCopyDiff@7
  inputs:
    workingdir: '$(SYSTEM.DEFAULTWORKINGDIRECTORY)/path'
    currentcommit: 'commitid'
    destination: '$(SYSTEM.ARTIFACTSDIRECTORY)'
    changeType: 'A,C,D,M,R,T'
    gittag: 'tag of the compare commit'
    nameOfFileDeletedList: 'FilesToBeDelete.ps1'
    • 结果:**

相关问题