如何配置 azure 管道以在执行构建验证管道操作之前始终拉取合并目标分支?

问题描述 投票:0回答:1

我有功能分支验证管道操作,需要访问合并目标分支。因此,在执行这些操作之前,合并目标分支必须在代理上保持最新状态。我如何配置管道来确保这一点?有关于如何从其他存储库签出分支的文档,但我没有找到适合这种特殊情况的任何内容。

git azure-devops azure-pipelines
1个回答
0
投票

根据评论,我们确定在您的管道中,您希望将最新目标分支的合并与目标分支的先前版本进行比较。我们将源分支称为

feature
并将目标分支称为
main
:

git fetch
git switch --detach origin/main
git merge origin/feature --no-ff
git diff HEAD~1 HEAD --name-only

详细说明:

  1. git fetch
    :更新所有远程跟踪分支
  2. git switch --detach origin/main
    :这与签出
    main
    相同,但具有额外的优点,即实际上不在分支上,分支将来可能会变得过时,并且需要稍后更新、重置或删除。由于这(可能)只是为了查找差异而进行的一次性工作,因此您不需要在分支上进行操作。如果你想在一个分支上,你可以使用
    git switch -C some-branch-name origin/main --no-track
    来代替。请注意
    -C
    而不是
    -c
    ,这使得此过程下次在同一构建代理上运行时可重复。
  3. git merge origin/feature --no-ff
    。这将创建临时合并提交,该提交可能比 PR 的当前合并提交更新。
    --no-ff
    对于确保
    feature
    在与
    main
    完全更新的情况下不会快进是必要的。
  4. 这是将当前提交的第一个父级与当前提交进行比较,以便您可以查看哪些文件/文件夹已更改。
© www.soinside.com 2019 - 2024. All rights reserved.