2009-08-18 8 views

Répondre

7

git clone clones toujours le dépôt complet, sauf si vous spécifiez le paramètre --depth <n> qui limite le dépôt des dernières n révisions (un soi-disant « clone superficiel »).

Toutefois, vous pouvez créer un référentiel local et utiliser git fetch pour extraire uniquement des parties du référentiel distant.

cd /path/foo 
git init 
git remote add origin <some url> 
git fetch origin <some branch> 

Ce dupliquera la plupart de ce git clone ne limite mais à la branche (s) que vous spécifiez sur la ligne de commande. (Je ne suis pas sûr de plus de détails tels que le suivi des branches et des tags et autres.)

2

Le titre et le résumé de votre question posent en quelque sorte deux questions différentes car, comme l'a noté Bombe, un clone obtient toujours tout le contenu, sauf s'il est utilisé utilisez l'option --depth.

Je ne suis pas sûr de ce que vous vraiment voulez, mais une autre option consiste à cloner avec le drapeau --no-checkout (ou -n). Par défaut, git extrait la branche par défaut du référentiel (qui est déterminée par le HEAD ref dans le référentiel distant - ce n'est pas toujours master). Si vous utilisez le drapeau -ngit ne sera pas la caisse d'une succursale pour vous afin que vous puissiez simplement la caisse ce que vous voulez:

git clone -n <some url> foo 
cd foo 
git checkout <some branch> 
Questions connexes