git конкретное игнорирование разреженной проверки c тип файла - PullRequest
2 голосов
/ 06 мая 2020

У меня есть репозиторий git с кучей больших csv, которые я не хочу клонировать, поэтому я наткнулся на git sparse-checkout и это сообщение: https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/

Из этого поста я взял следующее:

git clone --no-checkout https://github.com/john_doe/repo-with-big-csv.git
cd repo-with-big-csv
git sparse-checkout init --cone

Затем я редактирую .git/info/sparse-checkout и добавляю следующее (адаптировано из примера на странице выше):

/*
!**/*.csv

Но, похоже, он не работает должным образом. После git pull некоторые папки клонируются, некоторые - нет. Я также заметил предупреждение, когда я делаю git sparse-checkout list, я получаю:

warning: unrecognized pattern: '**/*.csv'
warning: disabling cone pattern matching
/*
!**/*.csv

Как правильно игнорировать только определенный тип файла?

1 Ответ

1 голос
/ 06 мая 2020

См. «Git разреженная проверка с исключением » и обязательно используйте Git 2.26.x, в котором есть некоторые исправления для команды git sparse-checkout .

В режиме конуса подкоманда набора git sparse-checkout принимает список каталогов вместо списка шаблонов sparse-checkout

Если core.sparseCheckoutCone=true, то Git проанализирует файл разреженного извлечения, ожидая шаблонов этих типов. Git выдаст предупреждение, если шаблоны не совпадают.

Вам нужно использовать только шаблоны ограничений на основе совпадений префиксов папок.

OP Frode Akselsen добавляет в комментарии :

мой пример действительно работает : папки, которые не t отображаются только только .csv файлов, следовательно, после применения правил в .git/info/sparse-checkout в папке больше ничего нет, и поэтому Git не отображает папку.

Подтверждаю, Git будет отображать только содержимое: если в папке нет файла (нет «содержимого»), указанная папка не отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...