Ik wil de broncode downloaden van de master-next branch git gebruiken zoals beschreven in de Xilinx wiki .
Ik heb dit geprobeerd:
#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
Zelfs dit is mislukt:
# 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
Het commando dat werkt is:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Maar hoe weet ik dat dit inderdaad de master-next branch ophaalt en niet de master branch ? Hoe haal ik een specifieke branch correct op met git?
Ik gebruik RHEL 6, toegankelijk via PuTTY.
Answer
Zoals de foutmelding je vertelt, git clone
verwacht een git-repository. Je kunt de naam van een branch in het pad op deze manier “t” toevoegen. Zie branches in git .
Je kunt een enkele branch (en zijn geschiedenis): git clone <url> --branch <branch> --single-branch
Zie git help clone
.
Maar het kloon-commando dat je uitvoerde gaf je een kopie van de hele repository, je kunt de bestaande branches zien met git branch
en meer details erover met git show-branch
.
Schakel over naar de gewenste branch met git checkout branch-name
.
De eerste hoofdstukken van de Pro Git -boek (online beschikbaar) geeft meer details over de basiscommandos.
Reacties
Antwoord
Dit commando zou moeten werken:
$ git fetch origin [branch]
Het bovenstaande commando haalt alleen metadata op uit een externe repository, dat doet het niet merge sources.
Als je de sources wilt ophalen en samenvoegen, zou het commando zijn:
$ git pull origin [branch]
Wees voorzichtig met de branch waar je voert een samenvoegopdracht uit. Het zal zijn waar de bronnen worden samengevoegd.
Opmerkingen
- Je antwoord is technisch correct, maar ik denk dat het baat zou kunnen hebben bij enige grammaticale controle / her- schrijven.
- dit werkt goed thx
Answer
git repositories bevatten alle branches ( maar gecomprimeerd en alleen verschillen, dus zelden een probleem met de grootte).
Daarom kunt u het hele project klonen zoals u met succes hebt gedaan. Dit is een standaardmanier om een repository te krijgen, zelfs als je maar in één branch geïnteresseerd bent.
De .git-structuur zal dan alle branches bevatten die op die repository zijn gedaan.
Om een specifieke branch te gebruiken, doe git checkout [branch_name]
Als de branch bestaat, zullen de bestanden lokaal beschikbaar worden gemaakt (net zoals de huidige bestanden in de projectmappen).
git status
zal dan laten zien welke branch de huidige branch is, bijvoorbeeld:
Volgens Leiaz kan men een specifieke branch klonen. In de praktijk “heb ik dit nog nooit gedaan of anderen het zien gebruiken. Bij verder onderzoek zie ik dat het relatief nieuw is, toegevoegd in git 1.7.10 (april 2012):” git clone geleerd –single-branch “optie om het klonen te beperken naar een enkele branch (verrassing!); tags die niet verwijzen naar de geschiedenis van de branch worden niet opgehaald. Bijvoorbeeld:
git clone -b master-next --single-branch git://github.com/Xilinx/
Hier, voor mijn “linker” -toepassing bekijk ik branch v3.0.10
Reacties
- Ik ' heb het ook nooit gedaan, ik herinnerde me de optie te hebben gezien. Ik denk dat het ' s die zelden als extra branches worden gebruikt, zijn " goedkoop " groot.
git checkout master-next
doen na het klonen.