Я думаю, что самым близким эквивалентом экспорта SVN будет архив Git. Вы можете извлечь path/to/module
из главной ветви репозитория и вставить имя module-name
в локальный каталог следующим образом:
git archive --remote=url-of-Git-repository --prefix=module-name/ master:path/to/module |
tar xf -
Если удаленный сервер не поддерживает архивирование, извлеките архив из локального (пустого) клона (использование пустого клона позволяет избежать размещения другой копии файлов в локальном хранилище, если это важно).
Тем не менее, ваше использование «check out» подразумевает (для меня), что вы хотите иметь функциональное дерево работы Git только с некоторыми присутствующими файлами. Это можно сделать с помощью функции «разреженного контроля», представленной в Git 1.7.0.
Включить эту функцию
- установив для параметра конфигурации core.sparseCheckout значение «true» *, и
заполнение файла $GIT_DIR/info/sparse-checkout
для репозитория шаблонами для имен путей, которые нужно сохранить **.
Можно использовать низкоуровневый «бит пропуска рабочего дерева» в индексе *** для управления разреженностью отдельных файлов, но, вероятно, вместо этого проще использовать механизм более высокого уровня.
В общем пользовательском интерфейсе есть некоторые пробелы (т. Е. Нет простого способа сказать «клонировать репозиторий по этому URL-адресу, а только проверить X, Y и Z»), но этого должно быть достаточно, чтобы получить функциональность «частичной проверки».
* см. «core.sparseCheckout» на странице конфигурации git
** см. раздел «Редкая проверка» в справочной странице git read-tree
*** см. «Бит Skip-worktree» на странице руководства git update-index