我在谷歌上搜索过,找到了很多解决方案,但没有一个适合我。
我试图通过连接到LAN网络中的远程服务器从一台机器克隆。
在另一台机器上运行此命令会导致错误。
但是使用git运行相同的克隆命令://192.168.8.5…在服务器上,这是正常的并且成功的。
有什么想法吗?
user@USER ~
$ git clone -v git://192.168.8.5/butterfly025.git
Cloning into 'butterfly025'...
remote: Counting objects: 4846, done.
remote: Compressing objects: 100% (3256/3256), done.
fatal: read error: Invalid argument, 255.05 MiB | 1.35 MiB/s
fatal: early EOF
fatal: index-pack failed
我已经在.gitconfig中添加了这个配置,但也没有帮助。
使用git版本为1.8.5.5.2 .msysgit.0
[core]
compression = -1
请注意,Git 2.13.x/2.14(2017年第三季度)确实引发了默认核心。影响git取回的packedGitLimit:
在较大的平台上,默认的package -git限制值已经提高(从8 GiB提高到32 GiB),以避免“gc”并行运行时“git获取”(可恢复的)失败。
参见David Turner (csusbdt)的commit be4ca29(2017年4月20日)。
帮助:Jeff King (peff)。
(由Junio C Hamano—gitster—在commit d97141b中合并,2017年5月16日)
Increase core.packedGitLimit
When core.packedGitLimit is exceeded, git will close packs.
If there is a repack operation going on in parallel with a fetch, the fetch
might open a pack, and then be forced to close it due to packedGitLimit being hit.
The repack could then delete the pack out from under the fetch, causing the fetch to fail.
Increase core.packedGitLimit's default value to prevent this.
On current 64-bit x86_64 machines, 48 bits of address space are available.
It appears that 64-bit ARM machines have no standard amount of address space (that is, it varies by manufacturer), and IA64 and POWER machines have the full 64 bits.
So 48 bits is the only limit that we can reasonably care about. We reserve a few bits of the 48-bit address space for the kernel's use (this is not strictly
necessary, but it's better to be safe), and use up to the remaining 45.
No git repository will be anywhere near this large any time soon, so this should prevent the failure.
我也有同样的问题。遵循上面的第一步,我能够克隆,但我不能做任何其他事情。不能取、拉或结帐旧树枝。
每个命令运行得比平时慢得多,然后在压缩对象后终止。
I:\dev [master +0 ~6 -0]> git fetch --unshallow
remote: Counting objects: 645483, done.
remote: Compressing objects: 100% (136865/136865), done.
error: RPC failed; result=18, HTTP code = 20082 MiB | 6.26 MiB/s
fatal: early EOF
fatal: The remote end hung up unexpectedly
fatal: index-pack failed
这也发生在你的裁判使用太多内存的时候。修剪记忆为我解决了这个问题。只要给你取回的东西加上一个限制,比如->
git fetch --depth=100
这将获取历史记录中最近100次编辑的文件。
在此之后,您可以以正常速度执行任何命令。