当repo变大时,为什么git操作变得缓慢

时间:2013-07-09 08:23:24

标签: git git-commit git-gc

我知道当repo变大时,git会变慢 但为什么呢? 由于git将文件存储为 .git 下的单独目录和文件,因此我无法找到操作变慢的原因。我们来看看 commit 操作。最近,我克隆了webkit repo,我从master分支,然后我将 2k 文件提交给分支。但是我觉得它比我在小型回购上的速度要慢 因为我没有读过git源代码,我想提交操作会破坏将文件存储到磁盘,插入提交日志,更新索引以及将 HEAD 更新为文件的sha值。

写作速度很快 插入速度很快。(我猜,如果插入操作是将日志追加到文件中) 更新指数很快 更新HEAD很快。

为什么它很慢? 任何人都能向我说明一下吗? 感谢。

有些答案很有帮助,但不是很有意义,提供一些代码片段来支持你会很棒。

1 个答案:

答案 0 :(得分:5)

提交树应该是及时的,因为它只需要创建一个新的提交对象(git write-tree)并更新HEAD ref。

我过去做过不同SCM的基准测试,git commit确实不受树大小,存储库大小,历史长度等的影响。