我有功能分支验证管道操作,需要访问合并目标分支。因此,在执行这些操作之前,合并目标分支必须在代理上保持最新状态。我如何配置管道来确保这一点?有关于如何从其他存储库签出分支的文档,但我没有找到适合这种特殊情况的任何内容。
根据评论,我们确定在您的管道中,您希望将最新目标分支的合并与目标分支的先前版本进行比较。我们将源分支称为
feature
并将目标分支称为 main
:
git fetch
git switch --detach origin/main
git merge origin/feature --no-ff
git diff HEAD~1 HEAD --name-only
详细说明:
git fetch
:更新所有远程跟踪分支git switch --detach origin/main
:这与签出main
相同,但具有额外的优点,即实际上不在分支上,分支将来可能会变得过时,并且需要稍后更新、重置或删除。由于这(可能)只是为了查找差异而进行的一次性工作,因此您不需要在分支上进行操作。如果你想在一个分支上,你可以使用 git switch -C some-branch-name origin/main --no-track
来代替。请注意 -C
而不是 -c
,这使得此过程下次在同一构建代理上运行时可重复。git merge origin/feature --no-ff
。这将创建临时合并提交,该提交可能比 PR 的当前合并提交更新。 --no-ff
对于确保 feature
在与 main
完全更新的情况下不会快进是必要的。