Depuis git 1.7.0 il est possible d’utiliser une technique qui s’appelle le sparse checkout
Les étapes pour le clonage sont les suivantes:
mkdir <repo> cd <repo> git init git remote add -f origin <url>
Cela crée un dossier vide, fait les fetches mais sans checker les fichiers. Ensuite il faut configurer pour utiliser sparseCheckout.
git config core.sparseCheckout true
Ensuite il faut définir quels dossiers/fichiers devront être présents. Pour ce faire il faut les ajouter dans le fichier .git/info/sparse-checkout. Par exemple:
echo "some/dir/" >> .git/info/sparse-checkout
echo "another/sub/tree" >> .git/info/sparse-checkoutUne fois cela fait, il faut mettre à jour le dossier:
git pull origin master
