Это команда git-clone-subset, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
git-clone-subset - клонирует подмножество репозитория git
СИНТАКСИС
git-клон-подмножество [кредита] хранилище пункт назначения описания
ОПИСАНИЕ
Клонирует хранилище в пункт назначения и работает на клоне
мерзавец ветвь фильтра --prune-пусто - дерево-фильтр мерзавец rm ...» -- --все
удалить из истории все файлы, кроме тех, которые соответствуют описания, эффективно создавая
clone с подмножеством файлов (и историей) исходного репозитория.
Полезно для создания нового репозитория из набора файлов из другого репозитория,
перенос (только) их связанную историю. Очень похоже на то, что
мерзавец ветвь фильтра --подкаталог-фильтр
работает, но для шаблона файла, а не только для одного каталога.
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-h, --Помогите
показать информацию об использовании.
хранилище
URL-адрес или локальный путь к репозиторию git, который нужно клонировать.
пункт назначения
Каталог для создания клона. Применяются те же правила для git-clone: это будет
создается, если он не существует, в противном случае он должен быть пустым. Но, в отличие от git-
clone, этот аргумент не является обязательным: git-clone использует несколько правил для определения
"Humane" имя каталога клонированного репо, и git-clone-subset не будет подвергать риску синтаксический анализ
его вывод, не говоря уже о том, чтобы предсказать выбранное имя.
описания Шаблон глобуса для соответствия желаемым файлам / каталогам. В конечном итоге он будет оценен
вызов bash, НЕ git или sh, с использованием расширенного glob '! ( ) 'правило. Цитируйте это или
избегайте его в командной строке, чтобы он не оценивался преждевременно вашим
текущая оболочка. Допускается только один шаблон: если требуется больше, используйте
Extglob's "|" синтаксис. Globs будет оцениваться с помощью набора dotglob shopt, поэтому
остерегаться. Шаблоны не должны содержать пробелов или специальных символов, таких как "'$ () {}`,
даже не заключены в кавычки и не экранированы, так как это может вставляться с синтаксисом! () после
расширение шаблона.
Примеры шаблонов:
"* .png"
"* .png | * значок *"
"* .h | src / | lib"
ОГРАНИЧЕНИЯ
Переименования НЕ выполняются. В качестве обходного пути укажите историю переименований с помощью 'git log --follow
--name-status --format = '% H' - файл | grep "^ [RAD]" 'и включить все несколько имен
файл в шаблоне, например "currentname | oldname | initialname". В качестве побочного эффекта, если
другой файл занял место старого имени, он тоже будет сохранен, и нет
способ обойти это с помощью этого инструмента.
Нет (простого) способа сохранить некоторые файлы в каталоге: использование 'dir / foo *' в качестве шаблона не приведет к
Работа. Так что сохраните весь каталог и потом удалите файлы, используя git filter-branch и
(довольно сложная) комбинация клонирования, удаленного добавления, перебазирования и т. д.
Сопоставление с образцом довольно ограничено, и многие экранирование и цитирование в bash не работают.
правильно, когда шаблон развернут внутрь! ().
Используйте git-clone-subset в Интернете с помощью сервисов onworks.net