Kaip klonuoti konkretų gitą?

Git klonas nukopijuos nuotolinę dabartinę darbo šaką į vietinį.

Ar galima kažkaip klonuoti tam tikrą šaką, neperjungiant filialų nuotolinėje saugykloje?

2255
16 дек. Scud rinkinys gruodžio 16 d 2009-12-16 02:06 '09, 02:06 am. 2009-12-16 02:06
@ 7 atsakymai

Taip pat žiūrėkite kitą atsakymą, kurį daugelis žmonių nori.

Taip pat galite įsitikinti, kad jūs suprantate skirtumą, skirtingai nei daugelis blogų komentatorių ir „downvoters“. Skirtumas yra toks: skambinant git clone --branch <branchname> url kurį git clone --branch <branchname> url visi filialai ir patikrinkite vieną. Pavyzdžiui, tai gali reikšti, kad saugykloje yra 5 KB dokumentacija arba wiki filialas ir 5 GB duomenų skyrius. Ir jei norite redaguoti savo pagrindinį puslapį, galite klonuoti 5 GB duomenų.

Vėlgi, tai nereiškia, kad git clone --branch nėra būdas tai padaryti, paprasčiausiai ne visada jūs norite pasiekti, kai klausiate apie tam tikros šakos klonavimą.

Atsakymas, kurį šiandien parašysiu su šiandieniniu gitu, būtų:

 git clone --single-branch --branch <branchname> host:/dir.git 

rašant pradinį atsakymą žemiau, git neturėjo pasirinkimo - --single-branch , bet leiskite išsaugoti jį visiškai patenkinti blogas bites.

„Coppasters“ labai nepatiko atsakymo:

 git init git remote add -t refspec remotename host:/dir.git git fetch 
396
16 дек. Atsakymą pateikė Michael Krelin - hacker 16 dec. 2009-12-16 02:09 '09, 02:09 2009-12-16 02:09
 git clone -b <branch> <remote_repo> 

Pavyzdys:

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

Git 1.7.10 ir vėlesnėse versijose pridėkite - „ --single-branch , kad visi filialai nebūtų imami. Pavyzdys su OpenCV 2.4 filialu:

 git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git 
6921
31 дек. Atsakymą pateikė Jorge E. Cardona gruodžio 31 d. 2010-12-31 08:36 '11, 08:36, 2010-12-31 08:36

Filialo klonavimas nenaudojant kitų filialų:

 mkdir $BRANCH cd $BRANCH git init git remote add -t $BRANCH -f origin $REMOTE_REPO git checkout $BRANCH 
225
08 сент. Atsakymą pateikė Edmar Miyake. 2011-09-08 17:34 '11 prie 17:34 2011-09-08 17:34

Čia yra paprastas būdas tai padaryti :)

Klonų saugojimas

 git clone <repository_url> 

Visų šakų sąrašas

 git branch -a 

Patikrinkite norimą filialą

 git checkout <name_of_branch> 
213
14 июля '11 в 12:42 2011-07-14 12:42 atsakymas pateikiamas superloginiu liepos 14 d., 11 val. 12:42 2011-07-14 12:42
 git checkout -b <branch-name> <origin/branch_name> 

, pavyzdžiui, mano atveju:

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

Taigi, norint sukurti naują filialą, pagrįstą mano „Enum-Account“ numerio filialu, aš:

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

Spustelėjus „Grįžti“, įvyksta:

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

"

74
15 нояб. atsakymas dkinzer nov 2011-11-15 22:34 '11, 10:34 val. 2011-11-15 22:34

Sukurkite filialą vietinėje sistemoje su šiuo pavadinimu. pavyzdžiui, tarkime, kad norite gauti filialą, pavadintą „branch-05142011“

git branch branch-05142011 origin/branch-05142011

Jis suteiks jums tokį pranešimą kaip „filialas filialui 05142011, sukonfigūruotas sekti nuotolinį filialą 05142011 iš šaltinio“.

Dabar tiesiog naršykite temą, kaip parodyta žemiau, ir turite kodą -
git checkout branch-05142011

20
15 мая '11 в 22:20 2011-05-15 22:20 atsakymą pateikė „ PlanetUnknown “ gegužės 15 d. 11 val. 20.20 val. 2011-05-15 22:20
 git --branch <branchname> <url> 

Bet bash užbaigimas nesulaukia šio rakto: - --branch

Mėgaukitės

14
07 сент. atsakymas duotas savgur 07 sept. 2011-09-07 13:16 '11, 13:16, 2011-09-07 13:16

Kiti klausimai apie žymes arba užduoti klausimą