问题描述:
公司gitlab更换了git地址,本地统以替换引用git路径后提交代码,准备更新到服务器上。
本地windows环境开发没有任何问题,再部署测试环境时go mod更新包依赖环境报错:

go: xxxxx.cn/infra-components/sdk/microservice-framework/go-framework-plugins.git@v0.1.5: git fetch -f https://xxxxxx.cn/infra-components/sdk/microservice-framework/go-framework-plugins refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /go/pkg/mod/cache/vcs/58988a8c52a11bcf34f438ff330fcee1edf52ba472cd02662ad24668e2d34569: exit status 128:
    error: RPC failed; result=22, HTTP code = 404
    fatal: The remote end hung up unexpectedly
步骤1:

google搜索错误原因,得到答案,git地址有问题,缺少.git后缀。
执行命令:

git fetch https://xxxxxx.cn/infra-components/sdk/microservice-framework/go-framework-plugins.git

可以正常获取

执行命令:

git fetch -f https://xxxxxx.cn/infra-components/sdk/microservice-framework/go-framework-plugins

得到上述错误,验证问题缺失.git后缀

问题:
为何在window上go mod没有问题了?

在window上执行命令

git fetch -f https://xxxxxx.cn/infra-components/sdk/microservice-framework/go-framework-plugins 

正常
在其他linux机器上执行该命令同样正常

步骤2:

为何缺失.git后缀,会出现404的问题。

搜索答案:git会在pull仓库地址时,会首先尝试连接不带.git后缀的仓库地址,然后在尝试连接带.git后缀的地址。两个地址都不行的情况下才会判断出错。

思考:是否是git版本的问题。

验证:git版本-window机器:v2.21.0 ;正常go mod的linux机器:v2.8.4;错误go mod的linux机器:v1.8.3.1

尝试:升级git版本,git升级到v2.9.5。问题解决。

文章来源于互联网,如有雷同请联系站长删除:go mod报错问题解决过程

发表评论