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 路径是这样的:
- go get https:/gitlab.xxx.net/xxx/yyy/zzz.git@v1.0.0 200 OK
- go get https:/gitlab.xxx.net/xxx/yyy.git@v1.0.0 200 OK
- 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 成功,完美!
本回完
|