多Git工作树场景下,git maintenance只需在主仓库启动一次吗?
Git多工作树下的
git maintenance执行说明 操作场景
你创建主仓库及多工作树的命令如下:
git clone https://github.com/octocat/Spoon-Knife cd Spoon-Knife git worktree add -b myfix ../myfix main git worktree add -b myfix2 ../myfix2 main
问题
仓库体积庞大,想通过git maintenance提升操作速度,是否需要在每个工作树执行git maintenance start?还是仅在主仓库执行一次即可?
答案
- 只需要在主仓库(
Spoon-Knife文件夹)执行一次git maintenance start就够了。 - 原因很简单:所有Git工作树共享的是主仓库的
.git核心数据目录,工作树里的.git只是个指向主仓库的链接文件。git maintenance是针对仓库核心数据做优化(比如打包对象、清理冗余数据),所以主仓库启动维护后,所有关联的工作树都会自动受益。 - 在其他工作树执行该命令不会报错,是因为Git会自动定位到关联的主仓库,本质还是对主仓库的数据执行维护,相当于重复操作,没额外作用,但也不会出问题。
内容的提问来源于stack exchange,提问作者Cesc
相关产品推荐
相关产品推荐

