go get 拉取报错The project you were looking for could not be found的解决方法

当使用`go get`拉取GitLab项目时遇到'远程项目找不到或无权限'的错误,通过检查GOPRIVATE、GOPROXY设置,以及使用`-x`参数查看debug日志,发现并非权限或私有库问题,而是Go解析问题。解决方案是创建`.netrc`文件,配置GitLab登录信息,包括用户名和access_token,此方法适用于Go 1.13及更高版本。若问题依然存在,降低Git版本也可能解决问题。

go get 拉取报错The project you were looking for could not be found的解决方法

被这玩意折腾了一下午

报错提示

remote: The project you were looking for could not be found or you don’t have permission to view it. fatal: repository ‘https:/gitlab.xxx.net/xxx/yyy/zzz.git’ not found

看起来是项目不存在或者没权限,实际这两者都是正常的,但就是go get报错,奇怪的很

排查记录

GOPRIVATE导致

网上说这是因为私有库的原因,要使用git config增加instead等等,但PRIVATE问题这个问题的报错还是有点不一样的。所以无效

GOPROXY导致

无效,没啥关系

增加参数-x, go get 问题?

文档说go get -x 可以看到go get具体执行时的debug日志。我试下了,还真有用,显示的get 路径是这样的:

  1. go get https:/gitlab.xxx.net/xxx/yyy/zzz.git@v1.0.0 200 OK
  2. go get https:/gitlab.xxx.net/xxx/yyy.git@v1.0.0 200 OK
  3. not found zzz version v1.0.0

看完日志我晕了,好好的请求zzz.git为什么又跳到上一级目录yyy呢?

后面我看到了老外对此相关的讨论,有老外说他也遇到了类似问题,只要拉取多级目录的git,就会报错,讨论到最后他说**“ignore me,gitlab issue”**。

难道是Gitlab问题,这解决难度很大,几乎是搞不定的。顺着这篇讨论的关键词搜索了其他讨论,看到最后说是go get 解析的问题,说是已经fix了,拉到最后,表示go 1.13就已经修复了,那为啥我用1.18还报错?

解决之道

go 1.13只是前提,在其他搜索结果中,终于找到了答案。

新建~/.netrc文件,配置git.yy.com登录信息,样式如下:
machine git.yy.com login username password git_password
其中username为git用户名
git_password为git.yy.com access_token

文件配置好,go get 成功,完美!
PS: 还有后续
后面我又遇到了类似的错误,真是服了,刚搞定这个有来了另外一个错误。然后我把git版本降了一下就没事了。。。

本回完
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值