Comment cloner une branche Git spécifique ?

Git clone se comportera en copiant la branche de travail courante distante dans la branche locale.

Existe-t-il un moyen de cloner une branche spécifique par moi-même sans changer de branche sur le dépôt distant ?

git clone -b  

Exemple :

git clone -b my-branch git@github.com:user/myproject.git

Avec Git 1.7.10 et plus, ajoutez --single-branch pour empêcher la récupération de toutes les branches. Exemple, avec la branche OpenCV 2.4 :

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
Commentaires (10)
Solution
git clone --single-branch --branch  

L'option --single-branch est valide à partir de la version [1.7.10][1] et ultérieure.

Veuillez voir aussi l'autre réponse que beaucoup de gens préfèrent.

Vous pouvez également vous assurer que vous comprenez la différence. La différence est la suivante : en invoquant git clone --branch url, vous allez chercher toutes les branches et en extraire une. Cela peut, par exemple, signifier que votre dépôt a une branche de documentation ou wiki de 5kB et une branche de données de 5GB. Et chaque fois que vous voulez modifier votre page d'accueil, vous pouvez finir par cloner 5 Go de données.

Encore une fois, cela ne veut pas dire que git clone --branch n'est pas le moyen d'accomplir cela, c'est juste que ce n'est pas toujours ce que vous voulez accomplir, quand vous demandez à cloner une branche spécifique.

Au moment de l'écriture de la réponse originale ci-dessous, git n'avait pas d'option --single-branch, mais préservons-la pour la pleine satisfaction des abeilles en colère.

La réponse si mal aimée par les copieurs était la suivante :

git init
git remote add -t refspec remotename host:/dir.git
git fetch

[1] : https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.10.txt

Commentaires (3)

Créez une branche sur le système local avec ce nom. Par exemple, disons que vous voulez obtenir la branche nommée "branch-05142011".

git branch branch-05142011 origin/branch-05142011

Vous obtiendrez un message du type - "Branch branch-05142011 configuré pour suivre la branche distante branch-05142011 depuis origin.&quot ;

Maintenant il suffit de vérifier la branche comme ci-dessous et vous avez le code - git checkout branch-05142011

Commentaires (5)