GIT - 无法克隆或拉取存储库(错误输出)

L.V*_*sek 8 git visual-studio atlassian-sourcetree

我在克隆/拉取一些 GIT 存储库时遇到问题。大多数存储库都能正常工作,但最大的一个(提交计数 - 我们将两年前的 tfs 项目转换为 GIT 存储库)无法工作。

\n

克隆错误:

\n
\n

git -c filter.lfs.smudge = -c filter.lfs.required = false -c diff.mnemonicprefix = false -c core.quotepath = false --no-可选锁克隆 --branch master PROJECTPATHPLACEHOLDER.git C:\ \Workspace\\GIT\\PROJECTNAME\n克隆到“C:\\Workspace\\GIT\\PROJECTNAME”...\n错误:RPC 失败;curl 56 接收失败:连接已重置\n致命:读取节标题“shallow-info”时出错

\n
\n

拉取错误:

\n
\n

RPC失败;curl 56 接收失败:连接已重置\nGit 因致命错误而失败。\n读取节标题“确认”时出错

\n
\n

我尝试谷歌可能的解决方案,但没有任何帮助(增加http.postbuffer,不同版本)。 \n我尝试了不同版本的GIT(2.21,2.27,2.29),不同的git环境(GIT cmd,Microsoft Visual Studio Professional 2019版本16.8) .0,Sourcetree 3.3.9)具有相同的错误输出。
\n我们使用 BitBucket 服务器作为 git 服务器。\n我的配置是笔记本电脑,win10 pro,通过 VPN 远程。

\n

我将很高兴提供任何帮助。\n谢谢,\nLuk\xc3\xa1\xc5\xa1 Va\xc5\xa1ek

\n

诗。如果有任何歧义,请向我询问规格。

\n

小智 10

我使用以下命令解决了同样的问题:

git clone --depth 20 <repo>
Run Code Online (Sandbox Code Playgroud)

参考:

https://git-scm.com/docs/shallow

有关此的更多信息:

git 浅克隆(clone --深度)错过远程分支


L.V*_*sek 6

我们找到了该问题的解决方案。VPN 防火墙(checkPoint)有某种过滤器,有时会阻止 git http 请求。


Von*_*onC 2

考虑到与浅层信息相关的任何内容都来自Git 2.18,2019 年第二季度提交 685fbd32916f3e94bc89aa14e8fdce835b06f801),也许较旧的 Git 会完全忽略该标头部分。

如果没有,我会首先检查该存储库是否可以在任何其他环境中克隆(意味着在 Linux 计算机上,仍然通过 VPN 访问,但在公司网络本地)


请注意,在某些情况下,此错误消息可能会在 Git 2.37(2022 年第 3 季度)中消失:

当输出中出现意外的可选部分时,“ git fetch( man )不必要地失败,该问题已通过 Git 2.37(2022 年第 3 季度)进行了纠正。

请参阅Jonathan Tan ( )提交的提交 7709acf(2022 年 5 月 16 日)。(由Junio C Hamano 合并 -- --提交 9cf4e0c中,2022 年 5 月 25 日)jhowtan
gitster

fetch-pack:使意外的查看结果不致命

签署人: Jonathan Tan

当 Git 服务器响应获取请求时,它可能会在 packfile 部分之前发送可选部分。
为了处理这个问题,Git 客户端调用packet_reader_peek()(请参阅 参考资料process_section_header())以便在不消耗该行的情况下查看接下来会发生什么。

然而,在实现时,只要看到的不是普通的行,Git 就会出错。
这不仅是意外的(这里,我们只需要知道接下来的行是否是我们想要的节头),而且会导致错误包含与错误原因无关的节头名称。

例如,在 中,当涉及的存储库都不浅时,$DAYJOB我们会看到“ ”错误消息。fatal: error reading section header 'shallow-info'

因此,请修复此问题,以便在接下来的行是所需的节标题且没有其他内容的情况下,peek 返回 1。
由于此更改,reader->line现在可能会出现NULL在该功能中,因此请相应地更新错误消息打印代码(expected '%s', received '%s'expected '%s')。