当 git clone 工作时,Go mod tidy 在私有存储库上失败

我将我的 ssh 密钥放在 github 中,因此git clone适用于某个私有存储库;但go mod tidy在尝试访问同一存储库时失败,并显示如下错误消息。我可以使用帮助来解决这个问题。go mod tidy来自(编辑私有存储库的名称,但逐字记录)的错误消息是:


    github.com/[private repository path]: cannot find module providing package github.com/[private repository path]: module github.com/[private repository path]: git ls-remote -q origin in /mnt/dependencies/gopath/pkg/mod/cache/vcs/a1f499df6a9855aecdc77bda31504008583a3268fdd403799aade71bb47df7d2: exit status 128:

fatal: 'origin' does not appear to be a git repository

fatal: Could not read from remote repository


Please make sure you have the correct access rights

and the repository exists.

成功的 git clone 命令(再次编辑私有存储库)是:


git clone git@github.com:[private repository path].git

我的.gitconfig文件是(删除了我的姓名和电子邮件):


[user]

    name = [my name]

    email = [my email]

[url "github.com:"]

    insteadOf = https://github.com/

[core]

    excludesfile = /workdir/.gitignore

其他可能有所作为的事情:


我在 Docker 容器中以 root 身份运行命令。

我尝试使用与 Docker 容器go mod tidy相同的密钥在我的主机上运行~/.ssh,我得到了登录提示,github 不再支持(他们需要 SSH 密钥或个人访问令牌)。

我的 gitconfig 中的电子邮件与我放在 github.com 上的公钥中给出的电子邮件匹配。

第二个相关问题:我可以运行的事实是否git clone排除了错误上传到 github 的密钥,以及忘记为 github 上的密钥启用 SSO?


这是一个类似的问题,但它涉及个人访问令牌而不是 ssh 密钥:`go mod tidy` fails to download private GitHub repository


慕妹3146593
浏览 303回答 2
2回答

慕姐8265434

我在 Docker 容器中以 root 身份运行命令。然后确保它确实访问/root/.ssh与您在常规帐户中使用的密钥相同的密钥(在 中)。并检查 Git 全局配置设置是否实际包含您的insteadOf指令。~/.ssh尝试使用与 Docker 容器相同的密钥在我的主机上运行 go mod tidy ,我得到了登录提示。这意味着公钥未正确注册到 GitHub 用户配置文件,或者所述用户无权访问存储库。

牛魔王的故事

我找到了我的问题的答案,但它开启了我在问题中遗漏的一个事实。直到第二天早上,我才意识到我的 Docker 映像中的 golang 版本高于用于填充的版本$GOPATH(或者至少我没有意识到这有多么重要)。为了解决这个问题,我删除了下面的所有内容$GOPATH并重新运行go mod tidy没有问题。VonC 的回答中的清单很有用,而且更切合问题的要点,所以我接受了。但我会为遇到这篇文章的任何人添加:“golang 的版本是否与go mod tidypopulated 不同$GOPATH?”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go