Kla*_*urn 5 git performance git-worktree monorepo
我刚刚了解了git worktree功能。它似乎很适合我的用例:我习惯于使用单独的存储库克隆来执行辅助任务。
我正在一个大型单一仓库中工作,有很多频繁的提交和大量的文件。它是如此之大,以至于许多任务都很慢。特别是git fetch和git push,但 Evengit status不再是瞬时的。
所以,git worktree听起来是个好主意,但如果它以任何明显的方式对性能产生负面影响,那绝对不值得。
是否存在多个工作树导致 git 性能变差的命令或场景?例如,是否git fetch需要做更多的事情,从而需要更长的时间?
我现在正在亲自尝试。但要进行精确的性能比较并不容易。例如,很难git fetch重复做同样的事情。
Git 中的工作树功能确实不应该以任何有意义的方式对性能产生负面影响。原因是工作树基本上只是独立分支上的另一棵工作树,具有自己的索引和可能的一小组本地配置变量。所有引用和对象都存储在主存储库中并在主存储库中共享,因此无论您使用不使用工作树还是使用一百个工作树,都没有关系。
如果您同时处理多个工作树,则可能会出现性能较差的情况,因为git status在一个工作树中运行会逐出有关另一工作树的缓存元数据。但是,无论如何,您都会遇到这个问题,但如果您更改主存储库中的分支,情况会更糟,所以我不认为这是一个严重的问题。
有些人喜欢使用多个工作树,有些人则不喜欢。您可能会发现它是否适合您,但我不会担心它的性能。