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 <branch> <remote_repo>
Exemple :
git clone -b my-branch [email protected]: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
git clone --single-branch --branch <branchname> <remote-repo>
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 <branchname> 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
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." ;
Maintenant il suffit de vérifier la branche comme ci-dessous et vous avez le code -
git checkout branch-05142011