我是git的新手.我想将一个大型提交推送到远程服务器,但问题是我何时使用
git push origin master
Run Code Online (Sandbox Code Playgroud)
它返回错误
Counting objects: 5009, done.
Delta compression using up to 16 threads.
fatal: unable to create thread: Resource temporarily unavailable
error: pack-objects died with strange error
Run Code Online (Sandbox Code Playgroud)
那么无论如何我可以设置Delta Compression的最大线程使用.
感谢帮助,
袁晨
小智 122
错误:"致命:无法创建线程:资源暂时不可用"强烈建议您在服务器上耗尽内存,如果您的存储库包含大量大文件,可能会导致重新打包大量内存或有限的虚拟内存 - 一般情况下,或者由于ulimit设置而仅针对该帐户.
无论如何,这里是你可以运行的命令,通过登录到远程系统(作为git运行的用户)并键入以下命令来限制打包可能占用的内存量:
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
Run Code Online (Sandbox Code Playgroud)
希望这有效.
Muz*_*ood 33
在共享主机中,我们的 cpu 资源有限,主要是 1 个 cpu,因此多线程在那里不能很好地工作。这个错误实际上是由于有限的 CPU 资源。
仅此一个 git 设置就足以解决此问题。
git config --global pack.threads "1"
Run Code Online (Sandbox Code Playgroud)
这限制了 git 只能创建一个线程。
小智 5
我也偶然发现了这个错误。为简化起见,会发生此错误,因为您要将100mb的文件复制到具有50mb(或更少)可用空间的硬盘中。要解决此问题,请SSH进入服务器并运行以下命令:
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
Run Code Online (Sandbox Code Playgroud)
“ unable to create thread: Resource temporarily unavailable
”表示远程服务器出现问题(例如没有更多可用内存)。
关于 delta,您需要调整以下配置:
pack.deltaCacheSize
Run Code Online (Sandbox Code Playgroud)
在将增量写入包之前,用于缓存 git-pack-objects(1) 中增量的最大内存(以字节为单位)。
该缓存用于加速写入对象阶段,一旦找到所有对象的最佳匹配,就不必重新计算最终的增量结果。
不过,在内存紧张的机器上重新打包大型存储库可能会受到严重影响,特别是如果此缓存将系统推入交换状态。
值为 0 表示没有限制。
最小大小 1 字节可用于虚拟禁用此高速缓存。默认为 256 MiB。
pack.deltaCacheLimit
Run Code Online (Sandbox Code Playgroud)
增量的最大大小,缓存在 git-pack-objects(1) 中。
该缓存用于加速写入对象阶段,一旦找到所有对象的最佳匹配,就不必重新计算最终的增量结果。默认为 1000。
SO问题“ Git pull因错误的包头错误而失败”引用了其他pack
相关的配置。
归档时间: |
|
查看次数: |
16410 次 |
最近记录: |