Версия 2.25.0 и выше (проверялось в 2.37). Новая функция – «sparse-checkout» позволяет работать только с частью репозитория, только необходимыми каталогами, если репозиторий используется несколькими отделами (например большой монорепо) и занимает очень много места.
атляет, то есть, не поражает. В планах было на gitlfs все опрокинуть
# клонируем существующий репозиторий, но скачиваем только структуру
git clone --filter=blob:none --no-checkout git@<репозиторий>
# ограничить рабочий каталог только файлами в корневом каталоге и в каталоге .git
# файлы из каталогов и подкаталогов не рассматриваются
git sparse-checkout set --cone
# и обычный чекаут мастера
git checkout master
# А теперь добавим каталоги docker, helm и terraform. Остальные каталоги и файлы скачиваться не будут.
git sparse-checkout set docker/ helm/ terraform/
git pull origin master
# теперь должны видеть всё что в корне, каталог .git и каталоги docker, helm, terraform
Подробности: https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/
Дополнительный плагин Git Large File Storage (git-lfs) для хранения больших файлов: https://git-lfs.github.com/