簡體   English   中英

為什么裸git repo的大小是非裸倉庫的1/4?

[英]Why is a bare git repo 1/4 the size of a non-bare?

我已將本地存儲庫克隆為兩個不同的存儲庫:一個裸存儲庫和一個非裸存儲庫。 裸機為750 MB,非裸機為3 GB。 由於我可以在兩者之間自由地“轉換”,因此相同的信息必須同時存在於裸倉庫和非裸倉庫中。 那么,非裸露的光環怎么能變成四倍呢?

我想知道它是否是它的兩倍大,因為也許每個文件都需要駐留在.git和工作目錄中。 但是為什么要四次呢?

因為索引是“打包”的,所以被壓縮。 它們的大小小於版本文件的大小,尤其是文本文件時。

存儲在.git/objects中的文件通常被打包。 這意味着它們被壓縮且未對齊塊邊界。 相反,結帳可能包含很多小文件。 如果使用更好地打包小文件(例如btrfs)的文件系統時該比率更好,我不會感到驚訝。 因此,在您的.git/objects目錄中,這兩個方面的共同作用相對較小。 也就是說,如果您沒有忘記git gc ;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM