【问题标题】:Lengthy git clone output on CentOSCentOS 上冗长的 git clone 输出
【发布时间】:2020-11-23 17:08:41
【问题描述】:

我有一个非常奇怪的问题,与从 github.com 克隆 git 项目有关

重现步骤: 只需运行:

git clone https://github.com/project/repo.git

实际结果:

Cloning into 'project'...
remote: Enumerating objects: 83298, done.
remote: Total 83298 (delta 0), reused 0 (delta 0), pack-reused 83298
Receiving objects: 100% (83298/83298), 105.79 MiB | 8.55 MiB/s, done.
Resolving deltas: 100% (51998/51998), done.
Downloading image1.png (421 KB)
Downloading image2.png (23 KB)
Downloading image3.png (48 KB)

     (.... a lot of lines ...)

Downloading docs/imageN.png (301 KB)(54 KB)
Checking out files: 100% (9408/9408), done.

有什么问题...我用同一个命令在多个服务器(Ubuntu/CentOS)中克隆同一个 repo。并且使用一些服务器它可以完美运行 - 大约需要 20 秒。 并且没有显示有关下载图像的信息。 但是使用一些服务器,会出现逐行下载图像的信息-需要很多时间,因为逐行显示信息(显示另一行需要几秒钟)-最后需要几分钟-而不是秒。

这很奇怪。我检查了很多配置,尝试比较环境 - 但我没有找到任何解决方案。

你有想法吗?


在下方帮助后编辑

解决办法是升级git。对于旧系统(如 CentOS 7.x),默认 git 版本是根本原因。 它应该手动安装到较新的 git(对于 CentOS 7.x,我安装了 git==2.16.5)。 这是一个非常有用的链接:https://www.askmetutorials.com/2017/11/install-git-215-on-ubuntu-linuxmint.html

【问题讨论】:

  • 您的问题应该严格保持为一个问题。无论如何,欢迎将您的解决方案添加为答案。您甚至可以接受自己的答案(尽管我想在这里接受可以让您解决问题的答案会是一种很好的形式)。

标签: linux git github centos7 git-clone


【解决方案1】:

看起来您正在使用带有 Git LFS 的存储库。当您检出此类存储库的工作树时(例如,作为克隆的一部分),Git LFS 将下载必要的对象,除非它们已经存在(克隆时它们不会存在)。

Git 使用 smudge and clean 过滤机制调用 Git LFS。如果您有较新版本的 Git,这将通过一个可以批量请求和并行下载的专用进程来完成。如果您使用的是旧版本的 Git,那么您将一次调用一个文件,这就是您在此处看到的情况。

如果您在 Git 2.15 或更新版本上运行,例如在 Ubuntu 18.04 或更新版本或 CentOS 8 上运行,那么一切都会好起来的。否则,您将需要升级您的 Git 版本、升级您的操作系统,或者学会忍受缓慢的克隆。

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 2016-10-06
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2013-01-21
    • 2013-06-06
    相关资源
    最近更新 更多