我知道当回购变得更大时,git会变慢
但为什么呢
由于git将文件存储为单独的目录和.git下的文件,我不知道为什么操作会变慢。让我们来看看提交操作。最近,我从master克隆了webkit repo和分支,然后向分支提交了一个2k文件。但我觉得它比我小额回购的速度慢
因为我还没有读过git源代码,我想提交操作会影响将文件存储到磁盘、插入提交日志、更新索引以及将HEAD更新为文件的sha值。
写得很快
插入速度很快。(我猜,如果插入操作是将日志追加到文件中)
更新索引很快
HEAD的更新速度很快。
为什么它很慢?有人能给我举例说明吗
谢谢
有些答案很有帮助,但不是很令人信服,提供一些代码片段来支持你会很好。
提交树的时间应该是恒定的,因为它只需要创建一个新的提交对象(git write-tree
)并更新HEAD
参考
我过去做过不同SCM的基准测试,git commit
确实不受树大小、存储库大小、历史长度等的影响。