Jeg vil downloade kildekode fra master-næste gren ved hjælp af git som beskrevet i Xilinx wiki .
Jeg prøvede 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 mislykkedes:
# 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
Den kommando, der fungerer, er:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Men hvordan ved jeg, at dette faktisk henter master-næste gren og ikke masterfilial ? Hvordan henter jeg korrekt en bestemt gren ved hjælp af git?
Jeg bruger RHEL 6, der er adgang til via PuTTY.
Svar
Som fejlmeddelelsen fortæller dig, forventer git clone
et git-lager. Du kan “t” tilføje “navnet på en gren i stien sådan. 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 kørte, gav dig en kopi af hele arkivet, du kan se de eksisterende grene med git branch
og flere detaljer om dem med git show-branch
.
Skift til den gren, du ønsker med git checkout branch-name
.
De første kapitler i Pro Git -bogen (tilgængelig online) giver flere detaljer om de grundlæggende kommandoer.
Kommentarer
Svar
Denne kommando skal fungere:
$ git fetch origin [branch]
Ovenstående kommando henter kun metadata fra det eksterne lager, det gør det ikke flet kilder.
Hvis du vil hente og flette kilderne, ville kommandoen være:
$ git pull origin [branch]
Vær forsigtig med grenen, hvor du udfører flettekommando. Det er her kilderne flettes.
Kommentarer
- Dit svar er teknisk korrekt, men jeg tror, det kan have gavn af en grammatisk kontrol / gentagelse at skrive.
- dette fungerer pænt thx
Svar
git-arkiver indeholder alle grene ( men komprimeret og kun forskelle, derfor sjældent et størrelsesproblem).
Derfor kan du klone hele projektet, som du har gjort med succes. Dette er en standard måde at få et arkiv på, selvom du kun er interesseret i en gren.
.git-strukturen inkluderer derefter alle de grene, der er udført på det arkiv.
For at bruge en bestemt gren skal du git checkout [branch_name]
Hvis filialen eksisterer, bliver filerne tilgængelige lokalt (som netop de aktuelle filer i projektmapperne).
git status
vil derefter vise, hvilken gren der er den aktuelle gren, for eksempel:
Ifølge Leiaz kan man klone en bestemt gren. I praksis har jeg “aldrig gjort dette eller set andre bruge det. Ved yderligere undersøgelser ser jeg det er relativt nyt, tilføjet i git 1.7.10 (april 2012):” git klon lært – enkeltgren “mulighed for at begrænse kloning til en enkelt gren (overraskelse!); tags, der ikke peger på grenens historie, hentes ikke. For eksempel:
git clone -b master-next --single-branch git://github.com/Xilinx/
Her til min “linker” -applikation tjekker jeg gren v3.0.10
Kommentarer
- Jeg ' har aldrig gjort det heller, jeg huskede at have set muligheden. Jeg antager at det ' s sjældent brugt som ekstra grene er " billig " i størrelse.
git checkout master-next
efter kloning.