我有一个具有很长提交历史记录的 Git 存储库。为了简单起见,假设我的旧存储库仅包含提交 COMMIT-1...COMMIT-10000 的主分支。我想知道如果我通过创建包含所有修改的大型“压缩”提交(COMMIT 1*)来创建给定存储库的“副本”,是否可以减少克隆所需的时间和本地存储库所需的空间远。
修改示意图:
CURRENT REPO -----> NEW REPO
COMMIT-10000 COMMIT-1*
|
...
|
COMMIT-1
这实际上会提高克隆速度或内存要求吗?
有没有普遍适用的解决方案来改善这些问题?
最佳答案
存储库中的提交是历史记录;更多提交 = 更多历史记录 = 更多总体数据 = 更多总体时间。所以:是的,如果您创建一个新存储库,仅一次提交保存所有文件的一个快照,那么这将始终比您的旧存储库(包含 10,000 个快照保存所有文件)至少小一点。
它能缩小多少,使用起来会快多少,这些都很难预测。因为提交尽可能地重用早期提交的文件,所以它只能稍微小一点。因为他们只尽可能地重用早期提交的文件,所以它可能会小 10,000 倍,甚至更多。
例如,假设第一次提交包含 10,001 个不同的文件,并且每个后续提交快照都会删除一个文件,保留其余文件。那么新存储库将在一个快照中包含一个文件,而旧提交将在 10,000 个快照中包含 10,001 个文件。
在实践中,找出答案的唯一方法就是尝试。
关于git - 较长的提交历史记录是否会导致克隆 Git 存储库的速度变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69492024/