Comment puis-je clone une branche Git spécifique? [dupliquer]
-
19-09-2019 - |
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?
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.