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

使用go get获取Azure私有仓库子目录模块时.git路径异常问题

解决Go引入Azure私有仓库子目录模块时路径含多余.git的问题

已按微软HTTPS文档配置.gitconfig和GOPRIVATE,能正常拉取完整仓库,但拉取子目录模块时,生成的依赖路径会多出.git部分,引发以下两类错误:

当前配置

.gitconfig

[url "https://user.name:token@dev.azure.com/company/project/_git/repo"]
    insteadOf = https://dev.azure.com/company/project/_git/repo

GOPRIVATE

"GOPRIVATE": "dev.azure.com"

错误示例

示例1:模块找不到

执行命令:

go get dev.azure.com/company/project/_git/repo.git/go

报错:

go: module dev.azure.com/company/project/_git/repo.git@upgrade found (v0.0.0), but does not contain package dev.azure.com/company/project/_git/repo.git/go

期望生成的依赖:

require dev.azure.com/company/project/_git/repo/go

示例2:模块路径不匹配

执行命令:

go get dev.azure.com/company/project/_git/repo.git/go/pkg/mypkg@feature/#99999/mybranch

报错:

go: dev.azure.com/company/project/_git/repo.git/go/pkg/mypkg@feature/#98667/mybranch (v0.0.0) requires dev.azure.com/company/project/_git/repo.git/go/pkg/mypkg@v0.0.0: parsing go.mod:
        module declares its path as: dev.azure.com/company/project/_git/repo/go/pkg/mypkg
                but was required as: dev.azure.com/company/project/_git/repo.git/go/pkg/mypkg

期望生成的依赖:

require dev.azure.com/company/project/_git/repo/go/pkg/mypkg

解决方案

1. 扩展.gitconfig的替换规则

在现有配置基础上,添加对带.git后缀路径的替换,确保无论命令里是否带.git,都会被正确映射到仓库地址:

[url "https://user.name:token@dev.azure.com/company/project/_git/repo"]
    insteadOf = https://dev.azure.com/company/project/_git/repo
    insteadOf = https://dev.azure.com/company/project/_git/repo.git

2. 使用不带.git后缀的命令

执行go get时,路径里不要加.git后缀,直接用子目录的正确路径:

  • 对应示例1的正确命令:
go get dev.azure.com/company/project/_git/repo/go
  • 对应示例2的正确命令:
go get dev.azure.com/company/project/_git/repo/go/pkg/mypkg@feature/#99999/mybranch

3. 确认子目录模块的go.mod路径正确

确保子目录里的go.mod中声明的模块路径和你引用的路径一致,比如go/pkg/mypkg目录下的go.mod开头应为:

module dev.azure.com/company/project/_git/repo/go/pkg/mypkg

原因说明

原来的.gitconfig只处理了不带.git的仓库路径,当你在go get命令里加上.git后缀时,替换规则不生效,导致Go将.git作为模块路径的一部分解析,而仓库中实际的模块路径并不包含.git,最终引发“找不到模块”或“路径不匹配”的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:27:16