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 <branch> <remote_repo>
Eksempel:
git clone -b my-branch [email protected]: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
git clone --single-branch --branch <branchname> <remote-repo>
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 <branchname> 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
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