Question

    

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

         

clone Git se comportera la copie branche de travail en cours à distance en local.

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

Était-ce utile?

La solution

git clone --single-branch --branch <branchname> <remote-repo>

L'option --single-branch est valide de la version 1.7.10 et versions ultérieures.

S'il vous plaît voir aussi autre réponse que beaucoup de gens préfèrent.

Vous pouvez également vous assurer que vous comprenez la différence. Et la différence est: en invoquant git clone --branch <branchname> url dont vous récupérez tous les branches et vérifier un. Cela peut, par exemple, signifie que votre dépôt a une documentation 5KB ou branche wiki et la branche de données 5GB. Et chaque fois que vous voulez modifier votre frontpage, vous pouvez finir par clonage 5 Go de données.

Encore une fois, cela ne veut pas dire git clone --branch n'est pas la façon d'y parvenir, il est juste que ce n'est pas toujours ce que vous voulez accomplir, quand vous demandez sur le clonage d'une branche spécifique.

Au moment de la rédaction de la réponse originale ci-dessous, git avait aucune option --single-branch, mais économisons la satisfaction pleine d'abeilles en colère.

La réponse si mal détestée par copypasters était le suivant:

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

Autres conseils

git clone -b <branch> <remote_repo>

Exemple:

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

Avec Git 1.7.10 et plus tard, ajouter --single-branch pour empêcher fetching 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

Voici un moyen très simple de le faire:)

Cloner le dépôt

git clone <repository_url>

Liste toutes les branches

git branch -a 

Voir la branche que vous voulez

git checkout <name_of_branch>

Pour cloner une branche sans aller chercher d'autres branches:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
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 que je fais:

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

Une fois que vous frappez retour ce qui suit se produit:

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

"

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

git branch branch-05142011 origin/branch-05142011

Il vous donnera un message comme - « branche-05142011 Direction a mis en place pour suivre la branche-05142011 branche à distance d'origine. »

Maintenant que la caisse de la branche comme ci-dessous et vous avez le code -
git checkout branch-05142011

git --branch <branchname> <url>

Mais la fin bash ne reçoivent pas cette clé: --branch

Profitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top