Cum pot clona o anumită ramură Git?

Git clone se va comporta copiind ramura de lucru curentă de la distanță în cea locală.

Există vreo modalitate de a clona singur o anumită ramură fără a schimba ramurile din depozitul la distanță?

git clone -b  

Exemplu:

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

Cu Git 1.7.10 și versiunile ulterioare, adăugați --single-branch pentru a preveni preluarea tuturor ramurilor. Exemplu, cu ramura OpenCV 2.4:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
Comentarii (10)
Soluția
git clone --single-branch --branch  

Opțiunea --single-branch este valabilă începând cu versiunea 1.7.10 și versiunile ulterioare.

Vă rugăm să consultați și alt răspuns pe care mulți îl preferă.

De asemenea, poate doriți să vă asigurați că înțelegeți diferența. Iar diferența este următoarea: prin invocarea git clone --branch url veți prelua toate ramurile și veți verifica una. Acest lucru poate însemna, de exemplu, că depozitul dumneavoastră are o ramură de documentație sau wiki de 5kB și o ramură de date de 5GB. Și ori de câte ori doriți să vă editați pagina principală, s-ar putea să ajungeți să clonați 5GB de date.

Din nou, asta nu înseamnă că git clone --branch nu este o modalitate de a realiza acest lucru, ci doar că nu este întotdeauna ceea ce doriți să realizați, atunci când întrebați despre clonarea unei ramuri specifice.

La momentul scrierii răspunsului original de mai jos, git nu avea opțiunea --single-branch, dar haideți să o păstrăm pentru satisfacția deplină a albinelor furioase.

Răspunsul atât de neplăcut de cei care fac copypaste era acesta:

git init
git remote add -t refspec remotename host:/dir.git
git fetch
Comentarii (3)

Creați o ramură pe sistemul local cu acest nume. de exemplu, să spunem că doriți să obțineți ramura numită "branch-05142011".

git branch branch branch-05142011 origin/branch-05142011.

Îți va da un mesaj de genul - "Branch branch branch-05142011 set up to track remote branch branch-05142011 from origin."

Acum, trebuie doar să verificați ramura ca mai jos și veți avea codul - `git checkout branch-05142011``.

Comentarii (5)