Git pull因错误的包头错误而失败

dei*_*mus 26 git

git pull失败,出现以下错误

remote: Counting objects: 146, done.
remote: fatal: unable to create thread: Resource temporarily unavailable
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header
Run Code Online (Sandbox Code Playgroud)

任何想法如何成功拉?

Mar*_*air 51

以...开头的行remote是从远程系统上运行的git输出的.错误:

fatal: unable to create thread: Resource temporarily unavailable
Run Code Online (Sandbox Code Playgroud)

...强烈建议您在服务器上耗尽内存,如果您有以下情况,可能会发生以下情况:

  1. 包含大量大文件的存储库,可能导致重新打包以占用大量内存.
  2. 有限的虚拟内存 - 一般情况下,或由于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)

  • 当我尝试从 svn 切换到 git 时,我怀着极大的热情开始了。但是,从一个晦涩的问题到更难解决的问题,我不确定切换的决定是多么明智。 (2认同)

Wes*_*ves 12

补充@Mark Longair的答案

我必须运行以下命令来解决此问题:

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1" 
git config --global pack.deltaCacheSize "512m"
Run Code Online (Sandbox Code Playgroud)

您可以在 git 文档中查看有关这些命令的更多信息git config