I am new to Git and have a fairly large project that I want to push to a remote repo (Repo B) on Github. The original project was on Github as well but from a different repo (Repo A). I have to make some changes to files from Repo A before I can setup the project up on Repo B. I have setup the remotes, ssh keys etc. and I run into an issue when pushing the codebase to Repo B.
I get the following error all the time:
$ git push <remote_repo_name> master
Enter passphrase for key '/c/ssh/.ssh/id_rsa':
Counting objects: 146106, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (35519/35519), done.
fatal: pack exceeds maximum allowed size00 GiB | 154 KiB/s
fatal: sha1 file '<stdout>' write error: Invalid arguments
error: failed to push some refs to '[email protected]:<repo>.git
I changed the following settings in my local gitconfig
git config pack.packSizeLimit 1g
git config pack.windowMemory 1g
... and ran git gc (which I see reorganized the packs so that each pack stayed within the packsize of 1GB). This did not work and I get the error seen above.
I tried to lower the size of each pack as well ....
git config pack.packSizeLimit 500m
git config pack.windowMemory 500m
... and ran git gc (which I see reorganized the packs so that each pack stayed within the packsize of 500MB). This did not work either and I ran into the same error.
I am not sure of what Github's default packsize limits are (if any). The account is a micro account if that matters.
The packsize limit does not affect git protocol commands (your push).
From git-config under
pack.packSizeLimit
:
The maximum size of a pack. This setting only affects packing to a file when repacking, i.e. the git:// protocol is unaffected.
When executing a push git will always create exactly one pack no matter the size!
To fix this use two (or more) pushes:
git push remoteB <some previous commit on master>:master
...
git push remoteB <some previous commit after the last one>:master
git push remoteB master
These pushes will all have smaller packs and will succeed.