Acho que o equivalente mais próximo de svn export seria git archive . Você poderia puxar o diretório path/to/module
da ramificação master de um repositório e colocar no diretório local module-name
desta forma:
git archive --remote=url-of-Git-repository --prefix=module-name/ master:path/to/module |
tar xf -
Se o servidor remoto não suportar o arquivamento, puxe o arquivo de um clone local (simples) (usar um clone simples evita ter outra cópia dos arquivos no repositório local, se isso for importante).
No entanto, seu uso de "check-out" implica (para mim) que você deseja ter uma árvore de trabalho funcional do Git com apenas alguns dos arquivos presentes. Pode-se conseguir isso com a funcionalidade “checkout esparsa” introduzida no Git 1.7.0.
Ativar essa funcionalidade por
- definindo a opção de configuração core.sparseCheckout como "true" * e
-
preenchendo o arquivo per-repository $GIT_DIR/info/sparse-checkout
com os padrões para os nomes de caminho para manter ** .
Pode-se usar o “skip-worktree bit” de baixo nível no índice *** para gerenciar a escassez de arquivos individuais, mas provavelmente é mais fácil usar o mecanismo de nível superior.
Existem algumas lacunas na interface geral do usuário (ou seja, não há uma maneira fácil de dizer "clone o repositório neste URL, mas apenas check-out X, Y e Z"), mas deve ser suficiente para obter "checkout parcial" funcionalidade.
* veja “core.sparseCheckout” no git config manpage
** veja “Verificação esparsa” no git leia-árvore manpage
*** consulte "Skip-worktree bit" no git update- índice manpage