Vreau să descarc codul sursă din filiala master-next folosind git așa cum este descris în wiki Xilinx .

Am încercat acest lucru:

#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 

Chiar și acest lucru a eșuat:

# 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 

Comanda care funcționează este:

 git clone git://github.com/Xilinx/u-boot-xlnx.git 

Dar de unde știu că acest lucru va prelua într-adevăr filiala master-next și nu ramură principală ? Cum aduc corect o anumită ramură folosind git?

Folosesc RHEL 6, accesat prin PuTTY.

Răspuns

Așa cum vă spune mesajul de eroare, git clone așteaptă un depozit git. Puteți „adăuga” numele unei ramuri în calea așa. Consultați ramuri în git .

Puteți clona o ramură unică (și istoria sa): git clone <url> --branch <branch> --single-branch

Consultați git help clone.

Dar comanda de clonare pe care ați executat-o v-a dat o copie a întregului depozit, puteți vedea ramurile existente cu git branch și mai multe detalii despre ele cu git show-branch.

Comutați la ramura dorită cu git checkout branch-name.

Primele capitole din Cartea Pro Git (disponibilă online) oferă mai multe detalii despre comenzile de bază.

Comentarii

  • comanda de clonare pe care ați executat-o v-a dat o copie a întregului depozit ". întregul depozit înseamnă că ambele ramuri s-au contopit?
  • Nu sunt nu fuzionat. O ramură din git nu este o copie a întregului director, așa cum a explicat aici .
  • Ceea ce am făcut este: " git clone -b master-next github.com/Xilinx/u-boot-xlnx.git " nu este corect?
  • Nu mai aveți nevoie de ' Comanda pe care ați arătat-o în întrebarea dvs. v-a dat depozitul cu toate ramurile. Dar și acest lucru este corect. Este ' echivalent cu a face git checkout master-next după clonare.

Răspuns

Această comandă ar trebui să funcționeze:

$ git fetch origin [branch] 

Comanda de mai sus preia doar metadatele din depozitul de la distanță, nu combinați sursele.

Dacă doriți să preluați și să îmbinați sursele, comanda ar fi:

$ git pull origin [branch] 

Aveți grijă cu ramura unde executați comanda de îmbinare. Acesta va fi locul în care sursele sunt îmbinate.

Comentarii

  • Răspunsul dvs. este corect din punct de vedere tehnic, dar cred că ar putea beneficia de o verificare / re-gramatică scriere.
  • funcționează frumos thx

Răspuns

depozitele git conțin toate ramurile ( dar doar diferențe comprimate și, prin urmare, rareori o problemă de dimensiune).

Prin urmare, puteți clona întregul proiect așa cum ați făcut-o cu succes. Acesta este un mod standard de a obține un depozit, chiar dacă sunteți interesat doar de o ramură.

Structura .git va include apoi toate ramurile făcute în acel depozit.

Pentru a utiliza o ramură specifică, faceți git checkout [branch_name] Dacă ramura există, fișierele vor fi puse la dispoziție la nivel local (ca și asta, fișierele curente din directoarele proiectului).

git status va arăta apoi care ramură este ramura curentă, de exemplu:

Potrivit lui Leiaz se poate clona o ramură specifică. În practică, „nu am făcut niciodată acest lucru sau am văzut că alții îl folosesc. În cercetări suplimentare, văd că este relativ nou, adăugat în git 1.7.10 (aprilie 2012): opțiunea„ git clonă învățată – ramură unică ”pentru a limita clonarea către o singură ramură (surpriză!); etichetele care nu indică istoricul ramurii nu sunt preluate. De exemplu:

git clone -b master-next --single-branch git://github.com/Xilinx/ 

introduceți descrierea imaginii aici Aici, pentru aplicația mea „linker”, verific filiala v3.0.10

Comentarii

  • Nici eu ' nu am făcut-o, mi-am amintit că am văzut opțiunea. Cred că ' S rar utilizate ca ramuri suplimentare au dimensiunea " ieftină ".

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *