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

  • " clone eseguito ti ha fornito una copia dellintero repository " .whole repository significa che entrambi i rami sono stati uniti?
  • No, lo sono non fusa. Un ramo in git non è una copia dellintera directory, come spiegato qui .
  • Quello che ho fatto è questo: " git clone -b master-next github.com/Xilinx/u-boot-xlnx.git " non è corretto?
  • ' non hai più bisogno di clonare. Il comando che hai mostrato nella tua domanda ti ha dato il repository con tutti i rami. Ma anche questo è corretto. ' equivale a git checkout master-next dopo la clonazione.

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/ 

inserisci qui la descrizione dellimmagine 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 ".

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *