Git可以差异化存储GZip文件吗?

Jam*_*hon 5 git gzip

Git是否将使用Gzip压缩的文本存储为二进制文件,还是可以告诉它是文本并存储文件更新之间的更改?

Lil*_*ard 8

Git不会尝试查看任何二进制文件.实际上,它甚至没有尝试查看文本文件.它根本不存储更新.它的作用是存储每个文件的全部内容,但它在整个对象库中进行增量压缩.因此,存储在磁盘上的数据实际上只是更新(因此是"增量压缩"),但Git本身可以看到完整的文件.

也就是说,不,Git不会尝试解压缩压缩文件以重新压缩自身.这意味着用gzip压缩的文本将具有与任何其他压缩格式(例如图像)大致相同的性能,也就是说,不会节省太多.

  • @JamesMcMahon:可能.我刚做了一个实验:10,000个版本的文本文件(大约1500行,44 KB),每个版本的第一行有一个小的改动,未压缩和压缩在两个单独的git存储库中(gzip将大小减小到16 KB).两个存储库最终都以`.git`目录占用241 MB.在`git gc`之后,带有未压缩文件的版本占用6.2 MB; 压缩文件的版本占用19 MB.显然git能够利用未压缩文件中的常见内容,但不能在压缩文件中利用. (6认同)
  • 所以,如果我解压缩文本文件,从长远来看可以节省空间吗? (2认同)