>_ IzzyLab

Практическое задание

Оставь в рабочем дереве только один каталог

средне

В /root/repo в корне лежит README.md и три подкаталога с файлами: src/, docs/, tests/.

Настрой sparse-checkout в cone-режиме так, чтобы в рабочем дереве остался только подкаталог src/ (файлы в корне репозитория при этом останутся). Каталоги docs/ и tests/ должны исчезнуть из рабочего дерева, но остаться в истории — то есть удалять их обычным rm нельзя, отсев должен обеспечивать именно sparse-checkout.

Что потренируешь:
  • git sparse-checkout
  • cone-режим
  • частичная выгрузка
  • рабочее дерево

Разбор темы

Sparse-checkout позволяет держать в рабочем каталоге лишь часть отслеживаемых файлов, не затрагивая ни индекс, ни историю — удобно для монорепозиториев, где не нужен весь объём сразу. Современный cone-режим работает на уровне каталогов: файлы из корня репозитория остаются всегда, а из подкаталогов — только те, что явно перечислены. Git сам убирает лишние каталоги из файловой системы, но они остаются в дереве коммитов, поэтому это принципиально отличается от обычного rm. Активность режима отражена в core.sparseCheckout.

Что проверяется

  1. каталог src остался
  2. каталог docs убран из рабочего дерева
  3. каталог tests убран из рабочего дерева
  4. sparse-checkout включён

Как это выглядит