我知道当 repo 变大时 git 会变慢。
但为什么?
由于 git 将文件存储为单独的目录和文件.git,我不知道为什么操作变慢。让我们来看看commit手术。最近,我从 master 克隆了 webkit 存储库和分支,然后我提交了一个2k文件到分支。但我觉得它比我在我的小仓库上做的要慢。
因为我没有通读git源代码,我猜提交操作会损害将文件存储到磁盘、插入提交日志、更新索引和更新HEAD文件的 sha 值。
写的很快。
插入速度很快。(我猜,如果插入操作是将日志附加到文件中)
索引更新速度很快。
HEAD更新速度很快。
为什么它很慢?
谁能给我说明一下吗?
Thanks.
有些答案很有帮助,但不太令人信服,如果能提供一些代码片段来支持您,那就太好了。
提交树的时间应该是恒定的,因为它只需要创建一个新的提交对象(git write-tree
)并更新HEAD
ref.
我过去对不同的 SCM 进行了基准测试,git commit
确实不受树大小、存储库大小、历史长度等的影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)