gpt4 book ai didi

git - 如何分块推送 Git 镜像?

转载 作者:行者123 更新时间:2023-12-04 16:11:13 24 4
gpt4 key购买 nike

我目前正在将一个大型 Git 项目迁移到 Git-LFS,其中包括重写整个 repo 历史记录以在 Git-LFS 中创建和包含某些文件。这部分过程很好。

但是,我无法将新存储库推送到上游远程(GitHub),因为它似乎太大而无法一次性推送:

PS > git push
Counting objects: 337130, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (73730/73730), done.
remote: fatal: pack exceeds maximum allowed size
fatal: sha1 file '<stdout>' write error: Broken pipe30 MiB/s
error: failed to push some refs to 'git@github.com:my-repo.git'

我尝试使用 HTTPS 得到类似的结果:
PS > git push
Counting objects: 337130, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (73730/73730), done.
error: RPC failed; curl 55 SSL_write() returned SYSCALL, errno = 10053
fatal: The remote end hung up unexpectedly
Writing objects: 100% (337130/337130), 3.58 GiB | 388.62 MiB/s, done.
Total 337130 (delta 261838), reused 337130 (delta 261838)
fatal: The remote end hung up unexpectedly
Everything up-to-date

这似乎有些普遍和 there are some solutions available包括指定一次上传的提交块。但是,我的 repo 是镜像克隆,不适用于指定的 refspecs:
PS > git push -u origin HEAD~5000:refs/heads/master
error: --mirror can't be combined with refspecs

关于如何将镜像仓库分块推送到远程上游的任何想法?

最佳答案

通过设置 remote.name.mirror 暂时禁用推送镜像在 git 配置中设置为 false。

--mirror 推送简单地推送所有引用(在 refs/ 下的所有内容),并将存储库配置为推送镜像有效地设置 --mirror旗帜。为了推送一组有限的提交,您需要执行 git push remote refspec事情,以便您的 refspec 可以引用足够小的提交集。

你可能不想要 -u在这里,因为它为当前分支设置了上游,但推送镜像通常根本不使用上游。

(一旦你有足够的远程提交,你可以重新启用推送镜像,因为从那时起,你发送的“瘦包”应该更小:实际上很瘦,而不仅仅是理论上的瘦:-)。)

关于git - 如何分块推送 Git 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com