Git clone sa bude správať tak, že skopíruje vzdialenú aktuálnu pracovnú vetvu do lokálnej.
Existuje nejaký spôsob, ako klonovať konkrétnu vetvu sám bez toho, aby som musel prepínať vetvy na vzdialenom úložisku?
git clone -b <branch> <remote_repo>
Príklad:
git clone -b my-branch [email protected]:user/myproject.git
V systéme Git 1.7.10 a novších verziách pridajte --single-branch
, aby ste zabránili načítaniu všetkých vetiev. Príklad, s vetvou OpenCV 2.4:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
git clone --single-branch --branch <branchname> <remote-repo>
Možnosť --single-branch
je platná od verzie 1.7.10 a novšej.
Pozrite si prosím aj inú odpoveď, ktorú mnohí ľudia uprednostňujú.
Možno sa tiež budete chcieť uistiť, že rozumiete tomuto rozdielu. A ten rozdiel je nasledovný: vyvolaním git clone --branch <branchname> url
načítate všetky vetvy a jednu z nich skontrolujete. To môže napríklad znamenať, že váš repozitár má vetvu s dokumentáciou alebo wiki s veľkosťou 5 kB a vetvu s dátami s veľkosťou 5 GB. A kedykoľvek budete chcieť upraviť svoju úvodnú stránku, môže sa stať, že nakoniec budete klonovať 5 GB dát.
Opäť to neznamená, že git clone --branch
nie je spôsob, ako to dosiahnuť, len to nie je vždy to, čo chcete dosiahnuť, keď sa pýtate na klonovanie konkrétnej vetvy.
V čase písania pôvodnej odpovede nižšie git nemal možnosť --single-branch
, ale zachovajme ju pre úplnú spokojnosť nahnevaných včiel.
Odpoveď, ktorá sa tak veľmi nepáčila kopírovačom, bola táto:
git init
git remote add -t refspec remotename host:/dir.git
git fetch
Vytvorte vetvu v lokálnom systéme s týmto názvom. napr. povedzme, že chcete získať vetvu s názvom "branch-05142011"
git branch branch-05142011 origin/branch-05142011
Zobrazí sa vám hlásenie typu - "Branch branch-05142011 set up to track remote branch branch-05142011 from origin."
Teraz už len zaškrtnite vetvu, ako je uvedené nižšie, a máte kód -
git checkout branch-05142011