我是 Git 新手,有一个相当大的项目,我想将其推送到 Github 上的远程存储库(存储库 B)。原始项目也在 Github 上,但来自不同的存储库(存储库 A)。我必须先对 Repo A 中的文件进行一些更改,然后才能在 Repo B 上设置项目。我已经设置了遥控器、ssh 密钥等,但在将代码库推送到 Repo B 时遇到了问题。
我总是收到以下错误:
$ 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
我在本地 gitconfig 中更改了以下设置
git config pack.packSizeLimit 1g
git config pack.windowMemory 1g
...并运行 git gc (我看到它重新组织了包,使每个包保持在 1GB 的包大小内)。这不起作用,我收到上面看到的错误。
我也尝试减小每包的尺寸......
git config pack.packSizeLimit 500m
git config pack.windowMemory 500m
...并运行 git gc (我看到它重新组织了包,使每个包保持在 500MB 的包大小之内)。这也不起作用,我遇到了同样的错误。
我不确定 Github 的默认包大小限制是多少(如果有)。如果重要的话,该帐户是微型帐户。
packsize 限制不会影响 git 协议命令(您的推送)。
From git 配置 under
pack.packSizeLimit
:
包装的最大尺寸。此设置仅影响重新打包时打包到文件,即 git:// 协议不受影响.
当执行推送时,git 总是会创建一个包,无论大小!
要解决此问题,请使用两次(或更多)推送:
git push remoteB <some previous commit on master>:master
...
git push remoteB <some previous commit after the last one>:master
git push remoteB master
这些推送都会有更小的包并且会成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)