Comment cloner une branche Git spécifique? [dupliquer]

cette question a déjà une réponse ici:

  • comment cloner une seule branche dans Git? 14 réponses

git clone se comporte copier branche de travail à distance courant dans local.

est - il possible de cloner une branche spécifique par moi-même sans commutation branches sur le dépôt à distance?

2173
demandé sur Steve Chambers 2009-12-16 02:06:50

7 réponses

s'il vous Plaît voir aussi le autre réponse , qui beaucoup de gens préfèrent.

vous pouvez également vouloir vous assurer de comprendre la différence, contrairement à la majorité des commentateurs en colère et des downvoters. Et la différence est: en invoquant git clone -b branch url vous allez chercher tous les branches et de vérifier un. Cela peut, par exemple, signifier que votre dépôt a une documentation de 5kB ou une branche wiki et une branche de données de 5GB. Et à chaque fois que vous voulez éditer votre page d'accueil, vous pouvez finir par cloner 5 Go de données.

encore une fois, c'est-à-dire ne pas dire git clone -b n'est pas la façon d'accomplir cela, c'est juste que ce n'est pas toujours ce que vous voulez accomplir, quand vous demandez à propos du clonage d'une branche spécifique.

la réponse que j'écrirais aujourd'hui, en pensant au git d'aujourd'hui serait

git clone --single-branch -b branch host:/dir.git

au moment de la rédaction 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 tant détestée par les copypasters était ceci:

git init
git remote add -t refspec remotename host:/dir.git
git fetch
313
répondu Michael Krelin - hacker 2018-06-29 11:02:17
git clone -b <branch> <remote_repo>

exemple:

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

avec le Git 1.7.10 et plus tard, ajouter --single-branch pour prévenir l'extraction de toutes les branches. Exemple, avec OpenCV 2.4 branche:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
6787
répondu Jorge E. Cardona 2018-07-11 17:09:13

Pour cloner une branche sans chercher d'autres branches:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
223
répondu Edmar Miyake 2012-11-06 09:01:00

Voici une façon très simple de le faire:)

cloner le dépôt

git clone <repository_url>

Liste de toutes les branches

git branch -a 

la Caisse de la branche que vous voulez

git checkout <name_of_branch>
210
répondu superlogical 2011-07-14 09:42:19
git checkout -b <branch-name> <origin/branch_name>

par exemple dans mon cas:

 git branch -a
* master
  origin/HEAD
  origin/enum-account-number
  origin/master
  origin/rel_table_play
  origin/sugarfield_customer_number_show_c

donc pour créer une nouvelle branche basée sur ma branche enum-numéro de compte je fais:

git checkout -b enum-account-number origin/enum-account-number

après que vous avez appuyé sur le retour, ce qui suit arrive:

Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number.
Switched to a new branch "enum-account-number

"

72
répondu dkinzer 2011-11-15 19:59:19

créer une branche sur le système local avec ce nom. par exemple, dire que vous voulez obtenir la branche nommée "branche-05142011"

git branch branch-05142011 origin/branch-05142011

il vous donnera un message comme -" Branch branch-05142011 configuré pour suivre la branche éloignée-05142011 de l'origine."

maintenant il suffit de vérifier la branche comme ci-dessous et vous avez le code -

git checkout branch-05142011

20
répondu PlanetUnknown 2011-05-15 19:20:32
git --branch <branchname> <url>

mais l'achèvement bash ne reçoivent pas cette clé: --branch

de Profiter de.

12
répondu savgur 2011-09-07 12:52:15