Voglio scaricare il codice sorgente dal ramo master-next utilizzando git come descritto nel wiki Xilinx .
Ho provato questo:
#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
Anche questo non è riuscito:
# 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
Il comando che funziona è:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Ma come faccio a sapere che questo recupererà effettivamente il master-next branch e non il ramo principale ? Come faccio a recuperare correttamente un ramo specifico utilizzando git?
Sto usando RHEL 6, accessibile tramite PuTTY.
Answer
Come ti dice il messaggio di errore, git clone
si aspetta un repository git. Puoi “t” aggiungere “il nome di un ramo nel percorso in questo modo. Vedi branch in git .
Puoi clonare un ramo singolo (e la sua storia): git clone <url> --branch <branch> --single-branch
Vedi git help clone
.
Ma il comando clone che hai eseguito ti ha fornito una copia dellintero repository, puoi vedere i rami esistenti con git branch
e maggiori dettagli su di essi con git show-branch
.
Passa al ramo desiderato con git checkout branch-name
.
I primi capitoli del Pro Git (disponibile online) fornisce maggiori dettagli sui comandi di base.
Commenti
Risposta
Questo comando dovrebbe funzionare:
$ git fetch origin [branch]
Il comando precedente recupera solo i metadati dal repository remoto, non unisci i sorgenti.
Se vuoi recuperare e unire i sorgenti, il comando sarebbe:
$ git pull origin [branch]
Fai attenzione al ramo dove stai eseguendo il comando di unione. Sarà il punto in cui le fonti vengono unite.
Commenti
- La tua risposta è tecnicamente corretta ma penso che potrebbe trarre vantaggio da un po di controllo / riconfigurazione grammaticale scrittura.
- funziona bene grazie
risposta
i repository git contengono tutti i rami ( ma compresso e solo differenze, quindi raramente un problema di dimensioni).
Pertanto, puoi clonare lintero progetto come hai fatto con successo. Questo è un modo standard per ottenere un repository, anche se sei interessato solo a un ramo.
La struttura .git includerà quindi tutti i rami fatti su quel repository.
Per utilizzare un ramo specifico, eseguire git checkout [branch_name]
Se il ramo esiste, i file saranno resi disponibili localmente (in questo modo, i file correnti nelle directory del progetto).
git status
mostrerà quindi quale ramo è il ramo corrente, ad esempio:
Secondo Leiaz si può clonare un ramo specifico. In pratica “non lho mai fatto né ho visto altri usarlo. Dopo ulteriori ricerche, vedo che è relativamente nuovo, aggiunto in git 1.7.10 (aprile 2012): opzione” git clone learn –single-branch “per limitare la clonazione a un singolo ramo (sorpresa!); i tag che non puntano alla cronologia del ramo non vengono recuperati. Ad esempio:
git clone -b master-next --single-branch git://github.com/Xilinx/
Qui, per la mia applicazione “linker” sto controllando il ramo v3.0.10
Commenti
- Neanche io ' lho mai fatto, ricordo di aver visto lopzione. Immagino sia ' I messaggi usati raramente come rami extra hanno dimensioni " economiche ".
git checkout master-next
dopo la clonazione.