Например, я хочу скачать PCL 3d_rec_framework.
Это git-репозиторий PCL: https://github.com/PointCloudLibrary/pcl.git
Как скачать этот каталог?
https://github.com/PointCloudLibrary/pcl/tree/master/apps
Я пытался запустить, но не работает:
sam@sam:~/code/pcl_standalone$ git clone https://github.com/PointCloudLibrary/pcl/tree/master/apps/3d_rec_framework
Cloning into '3d_rec_framework'...
error: The requested URL returned error: 403 while accessing https://github.com/PointCloudLibrary/pcl/tree/master/apps/3d_rec_framework/info/refs
fatal: HTTP request failed
sam@sam:~/code/pcl_standalone$
Как это скачать?
Кстати, я не хочу скачивать git PCL и удалять все другие каталоги, которые мне не нужны. Вот почему я задаю этот вопрос.
Спасибо ~
Ответ Добби больше не имеет место, так как git v1.7. Теперь вы можете извлекать определенные папки из хранилища. Полные инструкции можно найти здесь .
Это говорит git, какие каталоги вы хотите оформить. Тогда вы можете тянуть только эти каталоги
источник
Сначала сделайте:
Затем:
...И наконец:
Это так просто. Git перепишет репозиторий так, чтобы в него входил только нужный вложенный каталог. Это работает, даже если вложенный каталог имеет несколько уровней глубины. Просто назовите каталог назначения именем поддиректории. Затем в команде "git filter-branch" укажите относительный путь к подкаталогу. О,
--depth 1
говорит,git
чтобы загрузить только верх головы (по сути, удаление истории ).источник
git clone --filter
из Git 2.19Эта опция фактически пропускает выборку большинства ненужных объектов с сервера:
Сервер должен быть настроен с:
Начиная с версии v2.19.0 сервер не поддерживается, но его уже можно локально протестировать.
TODO:
--filter=blob:none
пропускает все BLOB-объекты, но по-прежнему выбирает все объекты дерева. Но в обычном репо это должно быть крошечным по сравнению с самими файлами, так что это уже достаточно хорошо. На вопрос: https://www.spinics.net/lists/git/msg342006.html Разработчики ответили, что--filter=tree:0
находится в разработке.Помните, что
--depth 1
уже подразумевается--single-branch
, см. Также: /programming/1778088/how-to-clone-a-single-branch-in-gitfile://$(path)
требуется преодолетьgit clone
протокол махинаций: /programming/47307578/how-to-shallow-clone-a-local-git-repository-with-a-relative-pathФормат
--filter
задокументированman git-rev-list
.Для поддержки этой функции было сделано расширение к протоколу Git remote.
Документы по дереву Git:
Смотрите также: /programming/2466735/how-to-checkout-only-one-file-from-git-repository-sparse-checkout
Проверьте это
GitHub вверх по течению .
Выход в Git v2.19.0:
Выводы: все капли, кроме
d1/a
отсутствующих. Напримерf70a17f51b7b30fec48a32e4f19ac15e261fd1a4
, чтоd1/b
там нет после проверкиd1/
.Обратите внимание, что
root/root
иmybranch/mybranch
также отсутствуют, но--depth 1
скрывает это из списка отсутствующих файлов. Если удалить--depth 1
, то они отобразятся в списке отсутствующих файлов.источник
Для репозиториев GitHub вы можете клонировать любые подкаталоги любого репозитория GitHub (по любой ссылке), используя https://github.com/HR/github-clone.
источник