git是否巧妙地处理了一个zip存档,其中只有一个文件经常更改?

Jos*_*ong 5 git zip commit archive

在我的一个git项目中,我有一个zip文件,它捆绑了一组java库.zip文件是4.5MB,包含11个文件.只有一个包含的库定期更改,我正在处理的库(大约50KB).其他库是静态的.

如果git聪明地只更改zip文件中的这个小变化,并且不会在每次提交时替换整个zip文件,那将是很棒的.否则,我的git存储库将会非常迅速地增长.

当我更新我的库并重新创建zip文件,并提交+推送更改时,我注意到git将对象以<100KB的顺序写入服务器,如"编写对象:100%(58/58),77.64 KiB,完成了." .所以它看起来像git聪明地只发送zip的更改部分,而不是一次又一次发送整个4.5MB的zip文件.

确实是git聪明地处理zip文件的情况吗?

Cha*_*esB 5

Git知道如何处理二进制文件中的差异,因此如果zip中的一些文件发生了变化,它将不会在每次提交时存储整个文件.

作为旁注,我不建议在您的存储库中存储zip,因为它可能是您的代码的工件(即编译结果),除非它是仅存储您的工件的存储库.