登录
首页 >  Golang >  Go问答

go get 似乎忽略了 gitconfig

来源:stackoverflow

时间:2024-04-30 11:42:37 367浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《go get 似乎忽略了 gitconfig》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

寻求一些帮助。我有一个托管在远程 gitlab 实例上的私有存储库,我应该能够访问它。但无论我尝试什么, go get 似乎都在尝试使用 https 而不是 ssh。我可以 git clonegit fetchetc 没有任何问题。但是当我使用 go get 时,它就失败了。

我做的第一件事就是添加这个: git config --global --add url."[email protected]:".insteadof "https://git.mydomain.io/"

然后我 cd 到我的项目目录并运行 go get,但尝试通过 https 进行身份验证失败,并显示“致命:无法读取“https://git.my.domain”的用户名:终端提示已禁用”:

ps c:\users\user\go\src\git.my.domain\ps\wk\collector> go get            
go: downloading git.my.domain/ps/mqtt v0.0.0-20220903204713-6f195510d46e
go: git.my.domain/ps/[email protected]: verifying module: git.my.domain/ps/[email protected]: reading https://sum.golang.orglookup/git.my.domain/ps/[email protected]: 404 not found
        server response:
        not found: git.my.domain/ps/[email protected]: invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/v
cs/3a728c5d3b6137ea441372540f3e7bc1390c001346a70d5b7df3eda6d5e7316d: exit status 128:
                fatal: could not read username for 'https://git.my.domain': terminal prompts disabled
        confirm the import path was entered correctly.
        if this is a private repository, see https://golang.org/doc/faq#git_https for additional information.
go: git.my.domain/ps/[email protected]: verifying module: git.my.domain/ps/[email protected]: reading https://sum.golang.org/lookup/git.my.domain/ps/[email protected]: 404 not found
        server response:
        not found: git.my.domain/ps/[email protected]: invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/v
cs/3a728c5d3b6137ea441372540f3e7bc1390c001346a70d5b7df3eda6d5e7316d: exit status 128:
                fatal: could not read username for 'https://git.my.domain': terminal prompts disabled
        confirm the import path was entered correctly.
        if this is a private repository, see https://golang.org/doc/faq#git_https for additional information.
go: module git.my.domain/ps/wk/collector/service: git ls-remote -q origin in c:\users\user\go\pkg\mod\cache\vcs\7d02e96755cff57eaec3323ab70c24a12ab19
eac805790ed1220d62b15affcf8: exit status 128:
        remote:
        remote: ========================================================================
        remote:
        remote: the project you were looking for could not be found.
        remote:
        remote: ========================================================================
        remote:
        fatal: could not read from remote repository.

        please make sure you have the correct access rights
        and the repository exists.
go: module git.my.domain/ps/wk/collector/service/service: git ls-remote -q origin in c:\users\user\go\pkg\mod\cache\vcs\7d02e96755cff57eaec3323ab70c2
4a12ab19eac805790ed1220d62b15affcf8: exit status 128:
        remote:
        remote: ========================================================================
        remote:
        remote: the project you were looking for could not be found.
        remote:
        remote: ========================================================================
        remote:
        fatal: could not read from remote repository.

        please make sure you have the correct access rights
        and the repository exists.

我快要疯了。我已经尝试了让 go get 使用 ssh 的各种组合:

git config --global --add url."[email protected]/".insteadof "https://git.mydomain.io/"

git config --global --add url."[email protected]".insteadof "https://git.mydomain.io"

git config --global --add url."ssh://[email protected]:".insteadof "https://git.mydomain.io/"
...

有什么特别的事情我必须在某个地方做吗?我只是不明白为什么 go get 使用 https,而 git 命令似乎正确使用 ssh..

======================

编辑:好吧,更多的过期让我意识到这是有效的:

[url "ssh://[电子邮件受保护]"]代替= https://git.mydomain.io/

因为我收到一个新错误:

ssh: Could not resolve hostname git.mydomain.iops: Name or service not known
        fatal: Could not read from remote repository.

但是,一旦我添加尾部斜杠来修复它,我就会回到 https 错误。 https 方面是否有发生在 ssh 之前的事情?


正确答案


尝试直接修改您的 ~/.gitconfig 文件,确保您的私有存储库的条目如下所示

[url "[email protected]:"] insteadOf = https://gitlab.com

也许有语法方面的东西。

还将网址(不带 https://)添加到您的 $gonoproxy 中。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《go get 似乎忽略了 gitconfig》文章吧,也可关注golang学习网公众号了解相关技术文章。

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