Hvordan kloner jeg en spesifikk Git-gren?

Git-klone vil oppføre seg ved å kopiere ekstern nåværende arbeidsgren til lokal.

Er det noen måte å klone en bestemt gren av meg selv uten å bytte grener på det eksterne depotet?

git clone -b  

Eksempel:

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

Med Git 1.7.10 og nyere, legg til --single-branch for å forhindre henting av alle grener. 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  

Alternativet --single-branch er gyldig fra versjon 1.7.10 og senere.

Se også annet svar som mange foretrekker.

Det kan også være lurt å forsikre seg om at du forstår forskjellen. Og forskjellen er: ved å påkalle git clone --branch url henter du alle grenene og sjekker ut en. Det kan for eksempel bety at depotet ditt har en dokumentasjons- eller wiki-gren på 5 kB og en datagren på 5 GB. Og når du vil redigere forsiden din, kan du ende opp med å klone 5 GB med data.

Igjen, det er ikke å si at git clone --branch ikke er måten å oppnå det på, det er bare at det ikke alltid er det du ønsker å oppnå, når du spør om å klone en spesifikk gren.

På tidspunktet for å skrive det opprinnelige svaret nedenfor, git hadde ingen --single-branch alternativ, men la' s bevare det for full tilfredsstillelse av sinte bier.

Svaret så dårlig mislikt av copypasters var dette:

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

Opprett en filial i det lokale systemet med dette navnet, f.eks. la oss si at du vil ha en filial med navnet "filial-05142011".

git gren gren-05142011 opprinnelse/gren-05142011

Det' vil gi deg en melding som - "Gren gren-05142011 satt opp for å spore ekstern gren gren-05142011 fra opprinnelse."

Nå er det bare å sjekke ut grenen som nedenfor, og du har koden - git checkout branch-05142011

Kommentarer (5)