Azure DevOps拉取请求检查时,构建流水线为何指向不同提交?
Azure DevOps PR构建流水线为啥用了陌生提交?
你看到的
3fa5v16175fcd23f5391fe8880cf8d36cc54e257是Azure DevOps自动生成的虚拟合并提交——平台会把你的PR分支最新提交(也就是dbbdc012)和目标分支的最新代码做一次虚拟合并,生成这个临时提交来跑构建。这么做是为了提前验证合并到目标分支后会不会出问题,比如有没有冲突、合并后代码能不能正常构建,而不是只验证PR分支自己的代码。这个虚拟提交只存在于Azure DevOps的构建环境里,不会推送到远程仓库,所以你本地执行
git fetch --all也拉不到它,checkout自然会报“reference is not a tree”的错。想看构建的具体逻辑,去PR对应的构建任务里看日志,
checkout步骤里会明确写着是在处理PR的合并提交。如果非要让构建直接用PR分支的最新提交,可以改构建策略的配置:在流水线触发设置里把“合并提交验证”改成直接用PR分支提交,但这么做会跳过合并后的状态检查,合并到目标分支时可能出问题,谨慎操作。
内容的提问来源于stack exchange,提问作者bigmauri
相关产品推荐
相关产品推荐

