got*_*sth 5 git continuous-integration git-diff azure azure-pipelines
git diff我\xe2\x80\x99m 面临在 Azure DevOps 管道环境中工作的挑战。这是管道脚本,用于将 git HEAD 与之前的提交进行比较,并仅复制已更改的文件。HEAD^git 命令在本地运行良好,但在 Azure 管道中会失败,因为CI 运行中没有。寻求建议,这样的比较在 Azure 中是否可行,以及我如何实现这一目标。
- task: PowerShell@2\n inputs:\n targetType: \'inline\'\n script: |\n $targetfolder = "$(Build.StagingDirectory)" + "/"\n \n function CopyFiles{\n param( [string]$source )\n \n $target = $targetfolder + $source\n \n New-Item -Force $target\n copy-item $source $target -Force\n }\n \n $changes = git diff --name-only --relative --diff-filter AMR HEAD^ HEAD .\n \n if ($changes -is [string]){ CopyFiles $changes }\n else\n {\n if ($changes -is [array])\n { \n foreach ($change in $changes){ CopyFiles $change }\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n我认为在Azure管道设置中,当它检查重新定位时,它只提取最新的提交,而没有完整的提交历史记录。这就是为什么当 git 尝试获取以前的提交(例如 )时HEAD^,它找不到任何内容。
预先非常感谢您的帮助!
\n