较长的提交历史是否会使克隆 Git 存储库变慢?

Does a long commit history make cloning a Git repository slow?

我有一个 Git 存储库,它有很长的提交历史。为了简单起见,假设我的旧存储库仅包含带有提交 COMMIT-1...COMMIT-10000 的主分支。我想知道如果我通过创建包含以下内容的大型“压缩”提交 (COMMIT 1*) 创建给定存储库的“副本”,是否可以减少克隆所需的时间和本地存储库所需的 space到目前为止的所有修改。

修改草图:

CURRENT REPO     ----->     NEW REPO
COMMIT-10000                COMMIT-1*
     |
    ...
     |
  COMMIT-1

这真的会提高克隆速度或内存需求吗?

是否有任何普遍适用的解决方案来改进这些事情?

存储库中的提交历史;更多提交 = 更多历史记录 = 更多总体数据 = 更多总体时间。所以:是的,如果你创建一个新的存储库,只有一个提交保存所有文件的一个快照,这将总是比你的旧存储库至少小一点,旧存储库有 10,000 个快照保存所有文件。

小,使用起来会快多少,都很难预测。因为尽可能多地提交 重用 早期提交的文件,所以它只能稍微小一点。因为他们只重用早期提交的文件尽可能多,它可能会小 10,000 倍,或者更多。

例如,假设第一个提交包含 10,001 个不同的文件,并且每个后续提交作为快照 删除 一个文件,保留其余文件。那么新仓库将在一个快照中有一个文件,而旧提交在 10,000 个快照中有 10,001 个文件。

在实践中,找出答案的唯一方法就是尝试。