Jeg vil laste ned kildekoden fra master-neste gren ved hjelp av git som beskrevet i Xilinx wiki .
Jeg prøvde dette:
#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git Initialized empty Git repository in /home/Hannan/master-next/.git/ fatal: remote error: Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name Email [email protected] for help
Selv dette mislyktes:
# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/ fatal: remote error: Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name Email [email protected] for help
Kommandoen som fungerer er:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Men hvordan vet jeg at dette faktisk vil hente master-neste gren og ikke masterfilial ? Hvordan henter jeg riktig en bestemt gren ved hjelp av git?
Jeg bruker RHEL 6, tilgjengelig via PuTTY.
Svar
Som feilmeldingen forteller deg, forventer git clone
et git-arkiv. Du kan «t» legge til navnet på en gren i banen slik. Se filialer i git .
Du kan klone en enkelt gren (og dens historie): git clone <url> --branch <branch> --single-branch
Se git help clone
.
Men klonkommandoen du kjørte ga deg en kopi av hele depotet, du kan se de eksisterende grenene med git branch
og mer informasjon om dem med git show-branch
.
Bytt til grenen du vil ha med git checkout branch-name
.
De første kapitlene i Pro Git -bok (tilgjengelig online) gir mer informasjon om de grunnleggende kommandoene.
Kommentarer
Svar
Denne kommandoen skal fungere:
$ git fetch origin [branch]
Kommandoen ovenfor henter bare metadata fra eksternt lager, den gjør det ikke flette kilder.
Hvis du vil hente og slå sammen kildene, vil kommandoen være:
$ git pull origin [branch]
Vær forsiktig med grenen der du utfører flettekommando. Det er der kildene blir slått sammen.
Kommentarer
- Svaret ditt er teknisk riktig, men jeg tror det kan ha nytte av noe grammatisk kontroll / gjentakelse skriving.
- dette fungerer fint thx
Svar
git-arkiver inneholder alle grener ( men komprimert og bare forskjeller, derfor sjelden et størrelsesproblem).
Derfor kan du klone hele prosjektet slik du har gjort. Dette er en standard måte å skaffe et arkiv på, selv om du bare er interessert i en gren.
.git-strukturen vil da omfatte alle grenene som er gjort på det arkivet.
Hvis du vil bruke en bestemt gren, gjør du git checkout [branch_name]
Hvis filialen eksisterer, vil filene bli gjort tilgjengelig lokalt (akkurat det er de nåværende filene i prosjektkatalogene).
git status
vil da vise hvilken gren som er den nåværende grenen, for eksempel:
I følge Leiaz kan man klone en bestemt gren. I praksis har jeg «aldri gjort dette eller sett andre bruke det. På videre forskning ser jeg at det er relativt nytt, lagt til i git 1.7.10 (april 2012):» git clone leard – single-branch «alternativ for å begrense kloning til en enkelt gren (overraskelse!); Etiketter som ikke peker inn i grenenes historie, blir ikke hentet. For eksempel:
git clone -b master-next --single-branch git://github.com/Xilinx/
Her, for «linker» -applikasjonen min, sjekker jeg ut gren v3.0.10
Kommentarer
- Jeg ' har aldri gjort det heller, jeg husket at jeg så alternativet. Jeg antar at det ' s sjelden brukt som ekstra grener er " billig " i størrelse.
git checkout master-next
etter kloning.