【问题标题】:How to make git clone faster with multiple threads?如何使用多个线程使 git clone 更快?
【发布时间】:2015-01-13 10:51:57
【问题描述】:

我到 github 的网速从来都不是很快,一直徘徊在 50kb/s(我的网速是 20mbit,不是很快,但仍然比这快得多)。据我估计,存储库是多 GB,因此需要很长时间。

git 是否支持使用multiple-threads 下载对象,以便我可以最大限度地提高互联网速度?

【问题讨论】:

  • 请解释反对意见,以便我解决我的问题。
  • 不是我的反对意见,而是你指的是哪个存储库?
  • @LievenKeersmaekers This one 如果有帮助的话。
  • 如果你的网速是 20mbps,那么连接到 github 的速度会这么慢是没有意义的。首先要弄清楚为什么会这样。
  • Git 2.5(2015 年第二季度)支持单次提取提交!我在下面编辑了我的答案,现在引用“Pull a specific commit from a remote git repository”。

标签: git git-clone


【解决方案1】:

您至少可以尝试使用浅克隆(意味着不克隆所有历史记录)来缓解该问题:

git clone --depth 1 <repository>

确保有一个 git 1.9+,正如我在“Is git clone --depth 1 (shallow clone) more useful than it makes out?”中解释的那样。

注意:Git 2.5(2015 年第二季度)甚至支持单个 fetch 提交!请参阅“Pull a specific commit from a remote git repository”。

【讨论】:

【解决方案2】:

git clone --jobs

如果您有多个子模块,这可能会有所帮助:

-j &lt;n&gt;, --jobs &lt;n&gt;

同时获取的子模块数。默认为 submodule.fetchJobs 选项。

添加于 v2.9.0(2016 年 3 月)commit 72290d6

克隆:允许并行子模块克隆的显式参数

我想知道如果您在一台服务器上有两个模块,这是否会有所帮助。 GitHub 上的 TODO 基准测试。

如果您有来自不同服务器的子模块,绝对应该这样做。

我想知道 Git 是否足够聪明,可以在给定时间尽可能多地从不同的服务器上获取数据,而不是可能一次将所有作业随机地放在单个服务器上。

【讨论】:

    【解决方案3】:

    试试git config --global http.postBuffer 524288000

    【讨论】:

    • 最好解释一下这是做什么的,而不是让读者相信一个不起眼的 git config 选项和一个明显的幻数。
    • 好吧,将git 的传输缓冲区更改为高达 500 MB,这样您就可以更轻松地推/拉更大的文件?.. 并且您不应该将它与 --global 一起使用当然,但有时更容易输入一次然后永远忘记它。
    • 我尝试了这个解决方案,但没有帮助我,速度是一样的,但感谢您提供解决方案。
    • @yunus,显然,它有时对我也不起作用。我真的不记得git什么时候变得这么慢了。可能有文档或文章描述了这背后的原因。
    【解决方案4】:

    我在 Windows 下看到过​​类似的行为,原因是 Windows 防病毒设置为非常激进,并且 git 正在传输大量小文件。双重引导到 Linux 为 git 克隆提供了全速。

    如果您有规范,请考虑创建一个测试 Windows 安装(例如虚拟使用 VirtualBox 或 vmware 播放器),从头开始安装原始 Windows 并仅添加必要的 git 软件。然后您可以查看问题是在“内部”还是“外部”git。我个人的猜测是这会很快。

    【讨论】:

    • 感谢您的建议。它在 linux 中更快,但仍徘徊在 220kb/s 左右。我不认为杀毒软件在这里完全有问题,在同一台机器上,我已经在更好的连接上达到了最高速度。
    • 那么你有一个不同的问题。我建议在另一个 github 对其他人来说很快的网段上重复这个测试。我会怀疑 ISP。
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 2022-06-12
    • 2019-04-16
    • 1970-01-01
    • 2020-11-28
    • 2011-09-03
    • 1970-01-01
    • 2016-10-23
    相关资源
    最近更新 更多