Skip to content

Instantly share code, notes, and snippets.

@anutator
Last active October 8, 2022 22:37
Show Gist options
  • Save anutator/8d97ba5e6f8e2c13f820c960f91004e7 to your computer and use it in GitHub Desktop.
Save anutator/8d97ba5e6f8e2c13f820c960f91004e7 to your computer and use it in GitHub Desktop.
Git

Работа с частью большого репозитория (sparse-checkout)

Версия 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/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment