Git pull fails with bad pack header error
Complementing the @Mark Longair's answer:
I had to run the following commands to fix this issue:
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
git config --global pack.deltaCacheSize "512m"
You can see more about these commands in the git documentation git config
.
The lines beginning with remote
are output from git running on the remote system. The error:
fatal: unable to create thread: Resource temporarily unavailable
... strongly suggests that you've run out of memory on the server, which can happen if you have either:
- A repository with lots of large files, which can cause re-packing to take a lot of memory.
- Limited virtual memory - either in general, or just for that account due to the
ulimit
setting
A suggestion here is to limit the amount of memory that packing may take by logging into the remote system (as the user that git runs as) and doing:
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"