You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline检出跨项目Git子模块失败问题及解决

Azure Pipeline 拉取Git子模块的问题排查与解决

问题背景

我在Azure DevOps部署Pipeline,目标是拉取项目A下的仓库RA——该仓库包含项目B的仓库RB作为Git子模块。遇到两个核心问题:

  • 单独通过resources段定义两个仓库并分别检出时,子模块RB始终拉取main分支,无法遵循RA中记录的特定提交哈希
  • 改用checkout步骤启用submodules: true参数按原生子模块方式拉取时,触发克隆失败错误:终端提示禁用,无法读取密码

已尝试的无效操作:

  • 取消组织及项目级的「限制发布管道作业授权范围到当前项目」设置
  • 在checkout步骤中添加persistCredentials: true参数

最终解决方案

问题出在RA仓库的.gitmodules文件里,子模块RB的URL使用了新版Azure DevOps格式,但当前组织仍在使用旧版域名(ORGANIZATION.visualstudio.com)。将子模块URL修改为旧版格式后,问题完全解决:

  1. 编辑RA仓库中的.gitmodules文件
  2. 将RB的URL从新版格式(如https://dev.azure.com/ORGANIZATION/ProjectB/_git/RB)替换为旧版:https://ORGANIZATION.visualstudio.com/ProjectB/_git/RB
  3. 提交并推送该修改到RA仓库
  4. 重新运行Pipeline,此时子模块会自动拉取RA中记录的对应提交哈希,且无权限相关的克隆错误

内容的提问来源于stack exchange,提问作者TheRoadrunner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:41:06