如何解决无法从私有Gitlab存储库获取
我想使用go get
来获取位于私有GitLab存储库中的软件包。我的go版本是go1.15.4 darwin/amd64
。并且当前目录有一个go.mod
文件。
当我运行go get -v git.xxx.com/path-to/package@v0.0.3
时,它会显示
get "git.xxx.com/path-to/package": found meta tag get.metaImport{Prefix:"git.xxx.com/path-to/package",VCS:"git",RepoRoot:"https://git.xxx.com/path-to/package.git"} at //git.xxx.com/path-to/package?go-get=1
get "git.xxx.com/path-to": found meta tag get.metaImport{Prefix:"git.xxx.com/path-to",RepoRoot:"https://git.xxx.com/path-to.git"} at //git.xxx.com/path-to?go-get=1
Enter passphrase for key '~/.ssh/id_rsa':
在我输入密码后,它挂了几个小时而没有显示任何内容。
我也尝试过-
$ sudo go get git.xxx.com/path-to/package@v0.0.3
go get git.xxx.com/path-to/package@v0.0.3: git.xxx.com/path-to/package@v0.0.3: invalid version: unknown revision v0.0.3
但是存储库确实具有标签v0.0.3。如果我尝试不使用版本-
$ sudo go get git.xxx.com/path-to/package
go get git.xxx.com/path-to/package: module git.xxx.com/path-to/package: git ls-remote -q origin in ~/go/pkg/mod/cache/vcs/bcb4baa8ab83c8bb452456922f12d22e1981b76bd2649d163d0c53c6: exit status 128:
gitlab@git.xxx.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
但是我可以克隆该存储库。因此,我拥有访问权限,并且在~/.gitconfig
文件中拥有该权限
[url "ssh://gitlab@git.xxx.com:2222/"]
insteadOf = https://git.xxx.com/
请注意,直到我在this blog之后运行此命令go get
为止,我的系统中一切正常(我可以使用go clean -cache -modcache -i -r
)。
解决方法
我想知道为什么git config中的端口?可能不是根本原因,但是您可以尝试
[url "git@gitlab.com:"]
insteadOf = https://gitlab.com/
,
让我们假设您已经正确设置了.git config
sshd_config
。
你可以尝试
cd $HOME # out of gopath
env GO111MODULE=off go get git.xxx.com/path-to/package
,
您可以尝试使用GOPRIVATe evn变量 https://golang.org/cmd/go/#hdr-Module_configuration_for_non_public_modules
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。