1

在我们的本地网络中,我们有一个 GitLab 正在运行。IP 绑定到gitlab.local. 我有一个 go package http://gitlab.local/projectsmall/core,它正在被另一个 Go 项目使用。在这个项目中,当我尝试运行时go mod tidy,我收到了这个错误:

go get gitlab.local/projectsmall/core: 
unrecognized import path "gitlab.local/projectsmall/core" 
(https fetch: 
  Get https://gitlab.local/projectsmall/core?go-get=1: 
  dial tcp 192.168.28.9:443: 
  connect: connection refused
)

我已将id_rsa.pub内容添加到 SSH Kyes。我试图将这个core项目添加到这样的 mod 路径中:/Users/UserA/go/pkg/mod/gitlab.local/guxin/core. 使用import "gitlab.local/guxin/core"GoLand IDE 仍然是红色的。似乎 go mod 项目找不到这个gitlab.local/guxin/core包。在go.mod文件中,在 require 块中,当我添加这个时gitlab.local/guxin/core,IDE 警报:usage: require module/path.

4

2 回答 2

1

我发现它使用的是 https,但本地 gitlab 没有使用 SSL。所以我试过go get -v -insecure了,现在可以了。

于 2019-05-05T03:02:23.720 回答
-1

我不确定,但在我看来,问题可能是您正在使用 ssh 密钥并且您正在通过 HTTPS 协议进行连接,正如您从错误文本中看到的那样。

试试看:https ://gist.github.com/dmitshur/6927554

$ ssh -A vm
$ git config --global url."git@gitlab.local:".insteadOf "https://gitlab.local/"
$ cat ~/.gitconfig
[url "git@gitlab.local:"]
    insteadOf = https://gitlab.local/
$ go get gitlab.local/private/repo && echo Success!
Success!

还有: “去获取”私有存储库的正确方法是什么?

在 GitLab 中,由于存储库始终以 .git 结尾,因此我必须在存储库名称的末尾指定 .git 才能使其工作,例如:

import "example.org/myuser/mygorepo.git"

和:

$ go get example.org/myuser/mygorepo.git

看起来 GitHub 通过附加“.git”解决了这个问题。

于 2019-04-30T09:59:49.837 回答