要求
每当需要将功能部署到环境中时,都会创建PR。要完成此PR,需要首先验证某些版本。只有完成此验证后,我们才能完成PR。
PR完成并合并后。将在目标(环境)分支上触发生成。这将部署更改。
问题
在PR构建完成并合并之后,它将通过git diff获取最后的更改并部署它。我通过这个命令获取最后的更改
$ git diff --name-only --diff-filter=d HEAD^ HEAD
每当执行此命令时,我都会收到以下错误。
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
##[error]Bash exited with code '128'.
但在那之后我手动触发构建,然后git diff工作,部署顺利进行。
问题
为什么当它通过目标(环境)分支上的提交自动触发时,它会给予一个错误,为什么当我手动触发它时,它会工作?
这些是我已经尝试过的命令,没有成功$ git log -1 --name-only--oneline或者$ git diff --name-only--diff-filter=d HEAD^ HEAD或者$ git diff --name-only--diff-filter= @~..@
1条答案
按热度按时间jchrr9hc1#
默认情况下,在2022年9月Azure DevOps sprint 209更新之后创建的新管道启用了Shallow fetch,并将深度配置为1。如果您的存储库较大,此选项可能会使您的构建管道更高效。
您可以从管道中的“获取源”任务的属性中配置“浅提取”设置。例如,将深度增加到5。有关详细信息,请参阅浅提取。