在我们的本地网络中,我们正在运行一个GitLab。 IP已绑定到gitlab.local
。我有一个go包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
。使用GoLand IDE的import "gitlab.local/guxin/core"
仍为红色。似乎go mod项目找不到此gitlab.local/guxin/core
软件包。在go.mod
文件的require块中,当我添加此gitlab.local/guxin/core
时,IDE警报为usage: require module/path
。
答案 0 :(得分:0)
我发现它使用的是https,但是本地gitlab没有使用SSL。所以我尝试了go get -v -insecure
,它现在可以正常工作。
答案 1 :(得分:-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!
并且: What's the proper way to "go get" a private repository?
在GitLab中,由于存储库始终以.git结尾,因此我必须指定 存储库名称末尾的.git使其起作用,例如:
import "example.org/myuser/mygorepo.git"
并且:
$ go get example.org/myuser/mygorepo.git
看起来像GitHub可以解决 通过添加“ .git”来实现。