我正在尝试将私人仓库从Gitlab迁移到Github。它包含一些使用git LFS跟踪的大文件。即使那样,我也无法将仓库推送到GitHub。存储库的大小巨大,因为它是操作系统的完整代码库,并且存储库的大小约为75GB。
当我尝试将其推送到GitHub时,会收到以下日志。
Uploading LFS objects: 100% (8600/8600), 5.9 GB | 0 B/s, done
Enumerating objects: 472049, done.
Counting objects: 100% (472049/472049), done.
Compressing objects: 100% (302043/302043), done.
kex protocol error: type 7 seq 16549), 1020.66 MiB | 4.88 MiB/s
kex protocol error: type 7 seq 32979), 1.99 GiB | 4.83 MiB/s
remote: fatal: pack exceeds maximum allowed size
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
请让我知道是否有任何方法可以绕过大小限制。
答案 0 :(得分:0)
GitHub不允许单次推送超过2 GB,以防止某些类型的DoS攻击。除非您正在使用GitHub import实用程序,否则您将需要逐步推送该存储库。
您可以通过运行以下命令来做到这一点:
git rev-list --reverse --all | ruby -ne 'x ||=0; x += 1; print $_ if x % 30000 == 0;' | xargs -I{} echo git push github +{}:refs/heads/master
git push github +master
git push --mirror github
这一次可推送30000次提交。推送完所有这些内容后,它将最后一次推送master
分支以包含正确的数据,然后镜像存储库的其余部分。