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

  • " klonekommando du kjørte ga deg en kopi av hele depotet ". hele depotet betyr at begge grenene er slått sammen?
  • Nei de er ikke slått sammen. En gren i git er ikke en kopi av hele katalogen, som forklarte her .
  • Det jeg gjorde er dette: " git clone -b master-next github.com/Xilinx/u-boot-xlnx.git " er dette ikke riktig?
  • Du trengte ikke ' ikke klone lenger. Kommandoen du viste i spørsmålet ditt ga deg depotet med alle grenene. Men dette er riktig også. Det ' tilsvarer å gjøre git checkout master-next etter kloning.

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/ 

skriv inn bildebeskrivelse her 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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *