Ответ 1
Обновление апрель 2015: Git Large File Storage (LFS) (по GitHub).
Он использует git-lfs (см. git-lfs.github.com) и протестирован на сервере, поддерживающем его: lfs-test-server:
Метаданные можно хранить только в репозитории git и в большом файле в другом месте.
Оригинальный ответ (2012)
Одно решение для больших двоичных файлов , которые не сильно меняются, заключается в том, чтобы хранить их в другом ссылочном файле (например, Репозиторий Nexus), а версия - только текстовый файл, который объявляет, какую версию вам нужно.
Использование "репозитория артефактов" проще, чем хранение двоичных элементов в репозитории source (сделанный для сравнения версий и слияния ветвей, что не очень полезно для указанных двоичных файлов).
Другое решение, более git-centric, git-annex:
git-annex
позволяет управлять файлами с git, не проверяя содержимое файла в git.
Хотя это может показаться парадоксальным, полезно при работе с файлами, большими, чем git, в настоящее время легко справляется, будь то из-за ограничений в памяти, времени или дискового пространства.
Однако он несовместим с Windows.
Более общее решение может быть git-media, что также позволяет использовать Git с большими носителями файлы без сохранения носителя в самом Git.
Наконец, самым простым решением является выделение этих двоичных файлов в их собственный git subodule, как вы упомянули в своем вопросе: это не очень удовлетворительное, а исходный клон все равно будет занимать время, но следующие обновления для родительского репо будут короткими.