登录
首页 >  Golang >  Go问答

Git 在 Linux 上收到致命读取错误连接被对等方重置,导致 go build 无法工作

来源:stackoverflow

时间:2024-03-14 21:27:25 421浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《Git 在 Linux 上收到致命读取错误连接被对等方重置,导致 go build 无法工作》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我在 ubuntu 上尝试使用 go 编译内部工具时遇到了一个奇怪的错误。出于公司敏感性,我更改了名称

$ go build -o internal-tool .
go: gitlab.com//platform/@v0.0.0-: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home//go/pkg/mod/cache/vcs/: exit status 128:
    fatal: read error: Connection reset by peer

我为每台尝试过此操作的计算机添加了 gitlab 的 ssh 密钥,我能够手动 git 克隆此工具-sdk,并且它克隆得很好。

如果我在 windows 上运行 go build -o internal-tool .,这非常有说服力。当它尝试 git fetch 该项目时,它会显示附加的 ui 对话框

我有 2fa 设置,因此密码不起作用,并且由于某种原因,浏览器从未工作,它从未使用 gitlab 登录名加载浏览器窗口。不过,访问令牌确实有效,因此我能够在 windows 上执行此操作。

看起来我的 go 或我的 go 在 linux 上使用的 git 无法加载此对话框,或者它没有类似的功能来登录 gitlab。我有同事没有遇到过这个问题。另外,如果它有任何用处,我已经看到它在 ubuntu 上通过 apt 进行安装,并在 ubuntu 上使用 snap 进行安装(在两台不同的机器上)。当我在 vscode 中打开这个项目时,它也会转发上述错误,所以这并不奇怪。

关于在这里做什么有什么建议吗?是否需要进行一些特定的 git 或 gitlab 设置才能进行?或者需要安装不同的go?


正确答案


提示要求输入密码或令牌意味着您的项目的依赖项之一需要 go 使用 https url(而不是 ssh url)克隆它

对话框本身来自 GCM (Git Credential Manager),它包含在其 v2.0.692 中,并支持 gitlab 存储库 adding GUI prompts for GitLab authentication

并不是说您可以在执行 go build 的 shell 中使用 export gcm_interactive=false 确保不会看到任何弹出窗口,从而确保构建失败并显示错误消息而不是弹出窗口。

根据您的情况,请尝试:

git config --global url.ssh://[email protected]/.insteadOf https://gitlab.com/

这将尝试使用 ssh url。

好了,本文到此结束,带大家了解了《Git 在 Linux 上收到致命读取错误连接被对等方重置,导致 go build 无法工作》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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