登录
首页 >  Golang >  Go问答

go get 失败而 git ls-remote 成功

来源:stackoverflow

时间:2024-02-15 12:48:25 480浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《go get 失败而 git ls-remote 成功》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

git ls-remote 命令对存储库成功,如下所示。

git ls-remote https://internal.net/dir1/dir2/dir3/repo
warning: redirecting to https://internal.net/dir1/dir2/dir3/repo.git/
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    head
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy    refs/heads/master

但是,当使用 go get 时,cmd 会失败并找不到存储库。错误输出尝试在存储库结构上方的 1 个目录中查找 .git。

go get internal.net/dir1/dir2/dir3/repo@master
go: internal.net/dir1/dir2/dir3/repo@master: invalid version: git ls-remote -q origin in /Users/{{UserId}}/go/pkg/mod/cache/vcs/xyz...: exit status 128:
    remote: The project you were looking for could not be found or you don't have permission to view it.
    fatal: repository 'https://internal.net/dir1/dir2.git/' not found

我的私有化是 goprivate=internal.net

为了让 go get 成功,我在这里缺少什么?


正确答案


在私有模块路径中添加vcs后缀以标记存储库根前缀:

go get internal.net/dir1/dir2/dir3/repo.git@master

请参阅直接访问私有模块

可能仍然需要内部 http 服务器来将模块路径解析为存储库 url 。例如,当 go 命令下载模块 corp.example.com/mod 时,它会向 https://corp.example.com/mod?go-get=1 发送 get 请求,并会查找存储库响应中的 url。为了避免此要求,请确保每个私有模块路径都有一个 vcs 后缀(如 .git),标记存储库根前缀。例如,当 go 命令下载模块 corp.example.com/repo.git/mod 时,它将克隆位于 https://corp.example.com/repo.gitssh://corp.example 的 git 存储库.com/repo.git,无需发出额外请求。

请注意,vcs 后缀是模块路径的一部分,因此应将其包含在所有使用模块路径的地方。包括:

  1. module 指令

    module internal.net/dir1/dir2/dir3/repo.git
  2. require 指令

    require internal.net/dir1/dir2/dir3/repo.git v0.0.1
  3. 进口报关

    import "internal.net/dir1/dir2/dir3/repo.git/pkg/util"
  4. 还有更多。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>