0
當我們克隆遠程時,我們得到的不是對象打包文件,這似乎是一些性能優化以減小大小。
但是這個優化是如何完成的?如果我理解這些是與原始對象具有相同內容的二進制文件,那麼它們如何佔用更少的空間?這個實現是否標準?爲什麼包文件的大小比遠程回購的對象小?
當我們克隆遠程時,我們得到的不是對象打包文件,這似乎是一些性能優化以減小大小。
但是這個優化是如何完成的?如果我理解這些是與原始對象具有相同內容的二進制文件,那麼它們如何佔用更少的空間?這個實現是否標準?爲什麼包文件的大小比遠程回購的對象小?
正如我在「How does git store files?」中提到的那樣,Git確實使用deltas進行存儲。
結果包括pack files,使用custom implementation of a diff algo for delta computation。
也許你沒有得到刪除的裁判? – biziclop
因爲他們是壓縮?爲什麼'C'標籤? – Stargateur
@Stargateur:Git是用C寫的嗎?所以也許這是關於我們在C中以緊湊的方式編寫二進制文件的方式?一些標準模式?他們如何壓縮? – Jim