我正在尝试从 github 中的远程存储库到本地计算机执行
git pull
...
但是 git 停留在 70% 的“解包对象”阶段,没有任何进展的迹象..(现在已经离开了几个小时,没有任何变化)
关于如何解决这个问题有什么建议吗?
是否可以指示 git 仅从远程存储库下载最新的提交/版本,而不下载所有中间状态?
当我在 github.com 上 git pull 存储库时遇到了同样的问题。我发现有一些大文件,并且与github的连接很慢。所以也许你只需要耐心等待 git 拉取整个存储库即可。
对我来说,解决方案是将协议说明符从 https 更改为 git,例如:
git clone https://github.com/some/repository
git clone git://github.com/some/repository
编辑:
这里有一些关于 Git 中使用的协议的信息。
一些亮点:
Git 协议的缺点是缺乏身份验证。
它还需要防火墙访问端口 9418,这不是企业防火墙始终允许的标准端口
您可能需要进行一些清理:
git fsck && git gc --prune=now
我发现大型二进制对象(如 Adobe Illustrator 文件等)也往往会使整个拉/推过程陷入困境。
这就是为什么我现在喜欢使用两个存储库来进行设计和代码。
如果您像我一样在尝试使用
git lfs
克隆存储库时登陆这里,请使用 git lfs clone
而不是 git clone
对我有用。
[...] 但是 git 停留在 70% 的“
”阶段,没有任何进展的迹象Unpacking objects
git unpack-objects
”用于仅根据接收和解压对象的数量显示进度,当它必须处理异常大的对象时,它就会停止。
它现在也显示吞吐量。
请参阅commit bae60ba(2019 年 11 月 19 日),作者:SZEDER Gábor (
szeder
)。gitster
-- 合并于 commit cf91c31,2019 年 12 月 5 日)
:显示吞吐量进度builtin/unpack-objects.c
签署人:SZEDER Gábor
“git unpack-objects”显示的进度线仅计算已解压对象的数量,因此如果某些接收到的对象异常大,那么在处理如此大的对象时,该进度可能会被冻结。
我盯着看似卡住的进度线看了半分钟多,而“
”正忙着接收一个只有几个物品的包裹(即少于“git fetch
”),其中一个已经结束80MB。fetch.unpackLimit
以“
”进度线显示吞吐量,因此即使在接收和处理大型对象时,我们也会显示某些事情正在发生。git unpack-objects
计算消耗的字节距离计算对象和显示进度的地方很远,为了传递 '
' 实例,我们必须修改 5 个函数的签名和 14 个调用点:这太多了流失,所以我们宁愿将其文件范围静态化。struct progress
',即'git index-pack
'的非解包近亲已经在其进度线中包含吞吐量,并且它也使用文件范围静态'git unpack-objects
'实例。struct progress
你应该执行以下操作,这对我很有帮助
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
我从一个类似的问题中获取了它Git fetch/pull/clone 挂在接收对象上