为什么 git 处理大文件时这么慢?

woo*_*ngs 8 git

我试图使用 git 来管理我的照片(备份/拍摄快照)。整个库有几个GB。大多数文件是2-3M的JPG。当我将文件添加到存储库时,似乎需要几天时间。CPU 利用率始终接近 100%。

有没有理由为什么 git 在大文件上应该很慢?

ps 我知道 git 不是为此而设计的。

小智 7

Git 默认压缩文件。默认情况下,JPEG 已经被压缩。这不是大文件,而是压缩文件。

您会注意到将 ZIP 文件添加到 git 存储库的相同效果。

编辑:https ://stackoverflow.com/questions/7102053/git-pull-without-remotely-compressing-objects 上有一个关于压缩的有趣线程。

  • @RandolphWest:很好,但错了。zlib 压缩可以通过`$ git set core.compression 0` 关闭。sha1 每秒数十 MiB,但它们可能会严重干扰低内存条件。 (3认同)
  • 你可以在 `git config` 中使用许多开关,包括 `core.compression` 和 `pack.window`。看到我从来没有真正尝试过在没有压缩的情况下运行 git,YMMV。请发布您的发现,以帮助我们所有人从您的经验中学习。 (2认同)
  • Git 还会在每次使用每个文件时制作(并检查)它的 sha1 哈希值,这对于大文件也可能需要一些时间。 (2认同)