Vraag Hoe een specifieke Git-tak te klonen? [duplicaat]


Deze vraag heeft hier al een antwoord:

De Git-kloon zal zich gedragen naar het kopiëren van de remote current working branch naar lokaal.

Is er een manier om een ​​specifieke branche op eigen kracht te klonen zonder takken in remote repository om te schakelen?


2088
2017-12-15 23:06


oorsprong


antwoorden:


Zie ook de ander antwoord waar veel mensen de voorkeur aan geven.

Je kunt er ook voor zorgen dat je het verschil begrijpt, in tegenstelling tot de meerderheid van boze commenters en downvoters. En het verschil is: door aan te roepen git clone -b branch url je bent aan het halen alle de takken en er een uitzoeken. Dat kan bijvoorbeeld betekenen dat uw repository een 5kB documentatie- of wikitak en 5GB datatak heeft. En telkens wanneer u uw voorpagina wilt bewerken, kunt u uiteindelijk 5 GB aan gegevens klonen.

Nogmaals, dat wil niet zeggen git clone -b is niet de manier om dat te bereiken, het is gewoon dat het dat niet is altijd wat je wilt bereiken, wanneer je vraagt ​​over het klonen van een specifieke tak.

Het antwoord dat ik vandaag zou schrijven, met de gedachte van vandaag zou zijn

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

op het moment dat het originele antwoord werd geschreven, had git nee --single-branch optie, maar laten we het bewaren voor volledige tevredenheid van boze bijen.

Het antwoord dat coplicasters zo erg niet leuk vonden, was dit:

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

230
2017-12-15 23:09



git clone -b <branch> <remote_repo>

Voorbeeld:

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

Voeg Git 1.7.10 en hoger toe met --single-branch om ophalen van alle takken te voorkomen. Voorbeeld, met OpenCV 2.4-vertakking:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git

6660
2017-12-31 05:36



Een tak klonen zonder andere takken ophalen:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH

222
2017-09-08 14:34



Hier is een heel eenvoudige manier om het te doen :)

Kloon de repository

git clone <repository_url>

Lijst alle takken

git branch -a 

Bekijk de branch die u zoekt

git checkout <name_of_branch>

204
2017-07-14 09:42



git checkout -b <branch-name> <origin/branch_name>

bijvoorbeeld in mijn geval:

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

Dus om een ​​nieuwe branch te maken op basis van mijn enum-account-nummertak doe ik:

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

Nadat je op Return hebt geklikt, gebeurt het volgende:

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

"


68
2017-11-15 19:34



Maak een filiaal op het lokale systeem met die naam. bijv. zeg dat je de genoemde tak wilt krijgen "Branch-05142011"

git branch branch-05142011 origin/branch-05142011 

Het geeft je een bericht als - "Branch branch-05142011 opgezet om remote branch branch-05142011 vanaf oorsprong te volgen."

Ga nu naar de tak zoals hieronder en je hebt de code -
git checkout branch-05142011


20
2018-05-15 19:20



git --branch <branchname> <url>

Maar bash completion krijgt deze sleutel niet: --branch

Genieten.


11
2017-09-07 10:16