git 停留在解压对象阶段

问题描述 投票:0回答:7

我正在尝试从 github 中的远程存储库到本地计算机执行

git pull
... 但是 git 停留在 70% 的“解包对象”阶段,没有任何进展的迹象..(现在已经离开了几个小时,没有任何变化)

关于如何解决这个问题有什么建议吗?

是否可以指示 git 仅从远程存储库下载最新的提交/版本,而不下载所有中间状态?

git github
7个回答
70
投票

当我在 github.com 上 git pull 存储库时遇到了同样的问题。我发现有一些大文件,并且与github的连接很慢。所以也许你只需要耐心等待 git 拉取整个存储库即可。


15
投票

对我来说,解决方案是将协议说明符从 https 更改为 git,例如:

git clone https://github.com/some/repository


git clone git://github.com/some/repository

编辑:
这里有一些关于 Git 中使用的协议的信息
一些亮点:
Git 协议的缺点是缺乏身份验证。
它还需要防火墙访问端口 9418,这不是企业防火墙始终允许的标准端口


7
投票

您可能需要进行一些清理:

git fsck && git gc --prune=now

4
投票

我发现大型二进制对象(如 Adobe Illustrator 文件等)也往往会使整个拉/推过程陷入困境。

这就是为什么我现在喜欢使用两个存储库来进行设计和代码。


3
投票

如果您像我一样在尝试使用

git lfs
克隆存储库时登陆这里,请使用
git lfs clone
而不是
git clone
对我有用。


0
投票

[...] 但是 git 停留在 70% 的“

Unpacking objects
”阶段,没有任何进展的迹象

在 Git 2.25(2020 年第 1 季度)中,“

git unpack-objects
”用于仅根据接收和解压对象的数量显示进度,当它必须处理异常大的对象时,它就会停止。

它现在也显示吞吐量

请参阅commit bae60ba(2019 年 11 月 19 日),作者:SZEDER Gábor (

szeder
)
(由 Junio C Hamano --
gitster
--
合并于 commit cf91c31,2019 年 12 月 5 日)

builtin/unpack-objects.c
:显示吞吐量进度

签署人:SZEDER Gábor

“git unpack-objects”显示的进度线仅计算已解压对象的数量,因此如果某些接收到的对象异常大,那么在处理如此大的对象时,该进度可能会被冻结。

我盯着看似卡住的进度线看了半分钟多,而“

git fetch
”正忙着接收一个只有几个物品的包裹(即少于“
fetch.unpackLimit
”),其中一个已经结束80MB。

以“

git unpack-objects
”进度线显示吞吐量,因此即使在接收和处理大型对象时,我们也会显示某些事情正在发生。

计算消耗的字节距离计算对象和显示进度的地方很远,为了传递 '

struct progress
' 实例,我们必须修改 5 个函数的签名和 14 个调用点:这太多了流失,所以我们宁愿将其文件范围静态化。

'

git index-pack
',即'
git unpack-objects
'的非解包近亲已经在其进度线中包含吞吐量,并且它也使用文件范围静态'
struct progress
'实例。


0
投票

你应该执行以下操作,这对我很有帮助

git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

我从一个类似的问题中获取了它Git fetch/pull/clone 挂在接收对象上

© www.soinside.com 2019 - 2024. All rights reserved.