git卡在解包对象阶段

6ju8rftf  于 2023-08-01  发布在  Git
关注(0)|答案(6)|浏览(112)

我正在尝试从github中的远程存储库到本地机器上做一个git pull...但是git在“解包对象”阶段停留了70%,没有任何进展的迹象。(现在已经放了几个小时了,没有变化)
对于如何解决这个问题有什么建议吗?
是否可以指示git只从远程仓库下载最新的commit/version,而不使用所有的Intermediate状态?

xkftehaa

xkftehaa1#

我发现大的二进制对象(如Adobe Illustrator文件等)也会使整个拉/推过程陷入困境。
这就是为什么我现在喜欢使用两个存储库来进行设计和代码

krcsximq

krcsximq2#

[...]但是git在“Unpacking objects”阶段停留了70%,没有任何进展的迹象
在Git 2.25(2020年第一季度)中,“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”正忙碌接收一个只有几个对象的包(即“git fetch”)。小于'fetch.unpackLimit'),其中一个超过80 MB。

在'git unpack-objects'进度行中显示吞吐量,这样即使在接收和处理大型对象时,我们也会显示正在发生的事情。

计算消耗的字节数与计算对象数和显示进度的位置相距甚远,为了传递'struct progress'示例,我们必须修改5个函数的签名和14个调用点:这是太多的变动,所以让我们宁愿让它成为文件范围的静态。
'git index-pack',即'git unpack-objects'的非解包表兄弟已经在其进度行中包括吞吐量,并且它还使用文件范围的静态'struct progress'示例。

e3bfsja2

e3bfsja23#

如果你和我一样,在尝试用git lfs克隆一个仓库时,使用git lfs clone而不是git clone对我来说是有效的。

ecbunoof

ecbunoof4#

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

w1e3prcc

w1e3prcc5#

对我来说,解决方案是将protocol specifier从https改为git,例如:
第一个月

git clone git://github.com/some/repository
编辑:
Here's something about the protocols used in Git的数据。
一些亮点:
Git协议的缺点是缺乏身份验证。
它还需要防火墙访问端口9418,这不是公司防火墙始终允许的标准端口

mcdcgff0

mcdcgff06#

你可能需要做一些清理:

git fsck && git gc --prune=now

字符串

相关问题