go get 无法拉取 GitHub 私有仓库 Go 模块问题求助
拉取失败原因说明
1. 路径不匹配报错原因
私有模块仓库根目录下的go.mod文件首行声明的模块路径为key-value-mod,与你执行go get时使用的引用路径github.com/dwschulze/key-value-mod不一致。Go模块的强校验规则要求引用路径必须和模块自身声明的路径完全匹配,校验失败就会抛出该错误。
2. 找不到v0.1版本报错原因
存在两种触发场景:
- 你提交的
v0.1标签绑定的是go.mod未修改的旧提交,即使后续修改了go.mod的路径声明,没有同步移动v0.1标签到新提交,Go拉取v0.1版本时读取到的仍然是旧提交的错误配置,版本匹配校验失败就会提示找不到对应版本。 - 本地Go缓存了之前拉取的错误模块信息,即使远程仓库配置修改完成,本地缓存没有清理的情况下也会无法识别到新的有效版本。
解决步骤
- 修改私有模块仓库的
go.mod文件首行声明为module github.com/dwschulze/key-value-mod,提交改动到GitHub。 - 重新绑定
v0.1标签到修改go.mod的新提交,执行以下命令:# 删除本地旧标签 git tag -d v0.1 # 删除远程旧标签 git push origin :refs/tags/v0.1 # 给新提交打标签 git tag v0.1 # 推送新标签到远程 git push origin v0.1 - 清理本地Go模块缓存:
go clean -modcache - 重新执行拉取命令:
go get github.com/dwschulze/key-value-mod@v0.1
内容的提问来源于stack exchange,提问作者Dean Schulze
相关产品推荐
相关产品推荐

