Вот несколько вариантов для рассмотрения:
Мелкие клоны : Вы можете добавить параметр --depth <depth>
к git clone
, чтобы получить неглубокий клон хранилища. например если <depth>
равно 1, это означает, что клон будет извлекать только файлы, необходимые для самого последнего коммита. Однако такие репозитории имеют неловкие ограничения на то, что вы можете с ними делать, как описано на странице руководства git clone
:
--depth
Create a shallow clone with a history truncated to the specified
number of revisions. A shallow repository has a number of
limitations (you cannot clone or fetch from it, nor push from nor
into it), but is adequate if you are only interested in the recent
history of a large project with a long history, and would want to
send in fixes as patches.
На самом деле, как обсуждалось в этой теме , это что-то вроде преувеличения - есть полезные ситуации, когда толчок от мелкого клона все еще будет работать, и возможно, что он будет соответствовать вашему рабочему процессу.
Расширение "git media" Скотта Чакона : автор описывает это в ответ на этот похожий вопрос и в README на github: http://github.com/schacon/git-media.
Мелкие подмодули : вы можете хранить все ваши большие файлы в отдельном репозитории git и добавить его как неглубокий подмодуль в ваш основной репозиторий. Это дает преимущество в том, что у вас нет ограничений на мелкие клоны для вашего кода, только хранилище с большими файлами.
Существует также множество способов сделать это, добавив хуки, которые (например) rsync над вашими большими файлами из хитов git, но я предполагаю, что есть веские причины, по которым вы хотите держать эти файлы под контролем git в первое место.
Надеюсь, это поможет.