¿Git maneja inteligentemente un file zip en el cual solo uno de los files cambia regularmente?

En uno de mis proyectos de git, tengo un file zip que agrupa un set de bibliotecas de Java. El file zip es de 4.5MB y contiene 11 files. Solo una de las bibliotecas contenidas se cambia regularmente, en la que estoy trabajando (que es del order de 50 KB). Las otras bibliotecas son estáticas.

Sería genial si git smartly solo cambia este pequeño cambio en el file zip, y no reemplaza el file zip completo con cada confirmación. De lo contrario, mi repository de git crecerá muy rápido.

Cuando actualicé mi biblioteca y recreé el file zip, y confirmé + push los cambios, noté que git escribe objects del order de <100KB en el server, como "Escribir objects: 100% (58/58), 77.64 KiB, hecho ". . Así que parece que git envía inteligentemente solo la parte modificada del file comprimido, y no todo el file comprimido de 4.5MB una y otra vez.

¿Es cierto que git maneja inteligentemente files zip?

Git sabe cómo manejar diffs en files binarys, por lo que si algunos files han cambiado en el file zip, no almacenará el file completo en cada confirmación.

Como nota al margen, no recomendaría almacenar zip en su repository, ya que es probable que sea un artefacto (es decir, resultado de compilation) de su código, a less que sea un repository que solo almacene sus artefactos.