为什么裸机git repo的大小是非裸机的1/4?

时间:2014-02-17 11:44:39

标签: git

我已将一个本地仓库克隆到两个不同的仓库中:一个是裸露的,一个是非裸露的。裸机为750 MB,非裸机为3 GB。由于我可以在两者之间自由地“转换”,因此相同的信息必须同时存在于裸存储库和非裸存储库中。那么非裸露的那个怎么能够大四倍呢?

我知道它是否大两倍,因为可能每个文件都需要驻留在.git和工作目录中。但为什么要四次?

2 个答案:

答案 0 :(得分:1)

因为索引是“打包”的,所以压缩了。它们的大小小于版本化文件的大小,特别是如果它们是文本文件。

答案 1 :(得分:1)

.git/objects中存储的文件经常打包。这意味着它们被压缩并且不对齐以阻止边界。相反,结账可能包含很多小文件。如果使用文件系统更好地打包btrfs这样的小文件,我不会感到惊讶。因此,在.git/objects目录中一起播放的两个方面相对较小。那就是你没有忘记git gc。 ; - )