Hvordan kloner jeg en bestemt Git-gren?

Git clone vil kopiere den aktuelle arbejdsgren til den lokale filial.

Er der nogen måde at klone en bestemt gren selv uden at skifte gren på det eksterne repository?

git clone -b  

Eksempel:

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

Med Git 1.7.10 og senere skal du tilføje --single-branch for at forhindre hentning af alle grene. Eksempel, med OpenCV 2.4 gren:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
Kommentarer (10)
Løsning
git clone --single-branch --branch  

Indstillingen --single-branch er gyldig fra version 1.7.10 og senere.

Se også andet svar, som mange foretrækker.

Du vil måske også gerne sikre dig, at du forstår forskellen. Og forskellen er: ved at påkalde git clone --branch url henter du alle branches og tjekker en af dem ud. Det kan f.eks. betyde, at dit repository har en 5kB dokumentations- eller wiki-gren og en 5GB data-gren. Og når du ønsker at redigere din forside, kan du ende med at klone 5 GB data.

Igen, det betyder ikke at git clone --branch ikke er måden at opnå det på, det er bare at det ikke altid er det du ønsker at opnå, når du spørger om kloning af en specifik branch.

På det tidspunkt, hvor det oprindelige svar nedenfor blev skrevet, havde git ingen --single-branch-mulighed, men lad os bevare den til fuld tilfredshed for vrede bier.

Det svar, der var så slemt foragtet af copypasters, var dette:

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

Opret en filial på det lokale system med det pågældende navn, f.eks. hvis du ønsker at få filialen med navnet "branch-05142011"

git branch branch branch-05142011 origin/branch-05142011

Det vil give dig en besked som - "Branch branch branch-05142011 sat op til at spore den eksterne branch branch branch-05142011 fra origin."

Nu skal du bare tjekke grenen som nedenfor, og du har koden - git checkout branch-05142011

Kommentarer (5)