@AnenNua

Как скопировать не все файлы из github?

Есть репозиторий, в который по какой-то причине закоммитили node_modules, а он весит как три четверти программы. Конечно классно, но я лучше скачаю его самостоятельно через npm.
Скачать весь репозиторий я не могу, загрузка zip архива становится слишком долгой.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега GitHub
Автоматизатор
Ваша задача имеет простое решение, так как в гите появилась поддержка работы с моно-репозиториями.

Моно-репозиторий — это репозиторий, который содержит исходный код и ресурсы для нескольких проектов в одной общей структуре. Обычно разработчикам требуется не весь репозиторий целиком, а только отдельный каталог, относящийся к конкретному подпроекту. Однако Git по умолчанию скачивает весь репозиторий, включая ненужные файлы и каталоги.

Git теперь поддерживает так называемое выборочное скачивание содержимого через механизм sparse-checkout. Это позволяет вам работать только с нужными файлами или каталогами, исключая остальные, такие как node_modules.
# Клонировать репозиторий с фильтром, чтобы не загружать все файлы сразу
git clone --filter=blob:none --sparse https://example.com/repo.git
cd repo
# Инициализировать выборочную загрузку
git sparse-checkout init --no-cone


Нужно отредактировать файл .git/info/sparse-checkout:
# включить все файлы
/*
# кроме одной папки
!/node_modules/

Применить настройки
# Докачать всё, кроме папки node_modules
git sparse-checkout reapply

После выполнения этих команд Git скачает весь репозиторий, исключая указанный каталог node_modules. Вы сможете работать с репозиторием, не загружая лишние данные. Если потребуется вернуть node_modules, достаточно удалить соответствующее правило из файла sparse-checkout и снова выполнить git sparse-checkout reapply
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы