В одном из моих git-проектов у меня есть zip-файл, который объединяет набор библиотек Java. ZIP-файл имеет размер 4,5 МБ и содержит 11 файлов. Только одна из содержащихся библиотек регулярно изменяется, та, над которой я работаю (, имеет размер порядка 50 КБ). Остальные библиотеки являются статическими.
Было бы здорово, если бы git умело менял только это небольшое изменение в zip-файле, а не заменял весь zip-файл при каждом коммите. В противном случае мой репозиторий git будет расти очень быстро.
Когда я обновил свою библиотеку и воссоздал zip-файл, а также зафиксировал + отправил изменения, я заметил, что git записывает объекты в порядке <100 КБ на сервер, например «Запись объектов:100 % (58/58), 77,64 КиБ, готово." . Так что похоже, что git ловко отправляет только измененную часть zip, а не весь zip-файл размером 4,5 МБ снова и снова.
Действительно ли git правильно обрабатывает zip-файлы?