有没有办法像 torrent 下载一样从 git 下载项目?

Is there a way to download a project from git like torrent downloads?

提问人:PenguinStream 提问时间:1/15/2022 更新时间:5/13/2023 访问量:229

问:

所以我没有良好的互联网连接,当我尝试下载一个大文件(游戏资产虚幻引擎,uassets)时,我从git收到EOF错误。项目大小超过 78GB。所以我需要找到一种方法来下载所有文件,但要以单独的方式。

  1. 我尝试过目录下载(它不起作用,因为它是公司拥有的 git)。
  2. 我尝试过单个文件下载,它可以工作,但需要下载超过 1000++ 个文件,所以它也不是一种选择。
  3. 下载为zip只下载2GB(不多,有时更少)也不下载.git文件夹,所以我甚至无法将其识别为Git Desktop上的存储库。
  4. 尝试使用(Fork、源代码树、VS Code(Git Extension)、VS Studio Community 2019、Git Desktop、Git Bash)下载文件的一部分,但以 EOF 结尾,并且发生此错误时所有下载都会被删除。

我愿意接受你们如何解决这个问题的建议。我可以确保我的互联网不良发生EOF错误。因此,如果可能的话,需要一种方法在多天内下载这个大文件(如洪流下载)。

git 版本控制 unreal-engine4 eof git-lfs

评论

0赞 jessehouwing 1/15/2022
您可以更改许多设置以延长超时、增加重试次数等。即使有错误,您也可以让 LFS 报告成功,这样事情就不会一直爆炸,从而允许您一次又一次地从命令行重试(请参阅 man.archlinux.org/man/community/git-lfs/git-lfs-config.5.enset GIT_LFS_SKIP_DOWNLOAD_ERRORS=1
0赞 jessehouwing 1/15/2022
将存储库从其在美国托管的源提供商(我猜是 GitHub)转移到本地提供商,然后从本地提供商克隆也可能有所帮助。例如,Azure DevOps可以选择在你的区域中创建实例,然后使用服务器到服务器导入功能在实例上创建存储库的副本。
1赞 PenguinStream 1/15/2022
我会尝试您的解决方案,如果有效,我会更新您,谢谢。

答:

0赞 Lazy Badger 1/15/2022 #1

有没有办法像 torrent 下载一样从 git 下载项目?

我愿意接受你们如何解决这个问题的建议

不。您可以选择:

  • 更换您的提供商并获得更稳定、更快速的连接
  • 改变你的工作方式,停止在“无脑模式”中使用 git:
    • Git(根据设计和目的)不打算在存储库中使用大文件
    • 存储库中从存储库存储的源二进制工件生成的存储始终是坏主意 (tm)
    • 如果你无论如何都必须处理 repo 中的大文件,你必须考虑将 Git-LFS 与 a) Git-provider(支持 git-lfs b) 本地快速 LFS 存储一起使用

评论

0赞 PenguinStream 1/15/2022
他们正在使用 Git LFS。另请注意,Azure DevOps 具有 Git Enterprize 也使用的类似 LFS 函数。这就是为什么问。而且我不可能获得所需的互联网。因此,这是一个技术问题。此外,它也可能是 git 未来的一个特征,适合那些负担不起良好连接并且仍然能够像其他人一样使用它的人。
0赞 saxbophone 5/13/2023 #2

在 Google 上托管了一个处于非常非常 alpha 状态的陈旧项目,旨在实现您描述的内容:https://code.google.com/archive/p/gittorrent

但正如我所说,它似乎已经过时了,没有积极的开发,也没有健康数量的同行使用它,洪流系统是毫无用处的。

不过很遗憾,因为我也觉得这样的工具会很有用——例如,克隆 GCC 的源代码是一种耐心的锻炼!