Magic git - Capitolul 6

Capitolul 6. Multiplayer Git

Initial am folosit Git pe un proiect personal, care a fost singurul dezvoltator. Printre comenzile legate de proprietățile distribuite Git, am nevoie doar de a trage și clona. pentru a menține același proiect în diferite locuri.

Pentru a seta acești parametri pentru stocarea curentă --global coboară steagul.

Git Peste SSH, HTTP

Să presupunem că aveți acces SSH la serverul de web, dar Git nu este instalat. Git poate comunica prin HTTP, deși acest lucru este mai puțin eficientă decât protocolul său nativ.

Pentru versiunile mai vechi de comandă copie Git nu funcționează, și va trebui să ruleze

Acum puteți publica cele mai recente editările prin SSH la orice clonă:

și oricine va fi în măsură să ia proiectul cu

Git Peste Orice

Doriți să sincronizați magazia fără servere, sau chiar o conexiune de rețea? Forțată să improvizeze pe zbor într-o situație de urgență? Am văzut git postul de export și import-git rapid poate converti un singur fișier de stocare și înapoi. Prin schimbul de astfel de fișiere, putem transfera depozitul de git prin orice mijloace, dar există un instrument mai eficient: pachet de Git.

Expeditorul creează un pachet (pachet):

Destinatarul poate face acest lucru chiar și într-un depozit gol. In ciuda dimensiunilor sale reduse, un fișier conține toate Git depozit original.

În proiecte mai mari, elimina singura modificare a volumului surplusului stivuite, nu a fost găsit în alte magazine. De exemplu, să se angajeze «1b6d ...» - ultimul comun pentru ambele grupuri:

În cazul în care se face în mod frecvent, puteți uita cu ușurință care comite a fost ultima trimise. Ajutor oferă o soluție pentru această problemă, utilizați tag-uri. Și anume, după transferul pachetului, tipul

și de a crea pachete actualizate prin intermediul

Patch-uri: Global

Să ne amintim de primul capitol:

Acesta emite un patch care pot fi inserate într-un e-mail pentru discuții. Într-un depozit Git, tip

să aplice plasturele.

Fișierele rezultate pot fi trimise prin git-trimitere la e-mail sau manual. Puteți specifica, de asemenea, o serie de comiterile:

La capătul de recepție, salvați un e-mail într-un fișier, și introduceți:

Cu e-mail bazat pe web, poate fi necesar să apăsați un buton pentru a vedea e-mail în forma sa inițială înainte de a salva de patch-uri într-un fișier.

Pentru clienții de e-mail care utilizează mbox, există unele diferențe; dar dacă utilizați unul dintre ei, atunci probabil poate înțelege cu ușurință acest lucru fără a citi descrierile!

Ne cerem scuze, ne-am mutat

Opțiunea Branch.master.merge specifică implicit ramura de la distanță pentru a trage git. În timpul Clonarea inițiale, este setat la curent magazia sursă de ramură, astfel încât, chiar dacă șeful magaziei sursă mutat ulterior la o altă ramură, trageți va urmări cu fidelitate ramura originală.

Această opțiune se aplică numai la magazia am clonat și înregistrat inițial în parametrul branch.master.remote. În cazul în care trage din alte arhive trebuie să precizeze ramura corectă:

Acest lucru explică de ce unele dintre împinge noastre anterioare și trage exemple nu au avut argumente.

sucursale izolate

Atunci când donarea unui depozit, clona, ​​de asemenea, toate ramurile sale. Nu puteți observa acest lucru, deoarece Git le ascunde departe: trebuie să le cereți în mod explicit. Acest lucru previne conflictul dintre ramurile din depozitul de la distanță și crengi, și, de asemenea, face Git mai ușor pentru începători.

Listă de sucursale de la distanță, puteți vedea echipa

Ar trebui să vedeți ceva de genul

Aceste nume corespund ramurilor și „cap“ în magazia de la distanță; ele pot fi utilizate în echipe convenționale GIT. De exemplu, ați făcut multe comiterile, și ar dori să compare starea curentă cu ultima versiune preluat. Puteți căuta jurnalele hash SHA1 corespunzătoare, dar este mult mai ușor să câștige

Puteți vedea, de asemenea, ceea ce a fost stabilit ramura experimentală:

Mai multe arhive de la distanță

Să presupunem că doi dezvoltatori lucrează la proiectul nostru și dorim să urmăriți ambele. Putem vedea mai mult de un depozit la un moment dat, astfel:

Acum am făcut o fuziune cu o sucursală din al doilea depozit. Acum avem acces ușor la toate ramurile tuturor magaziilor:

Dar dacă vrem doar să compare modificările lor, fără a afecta munca ta? Cu alte cuvinte, vrem să exploreze ramurile altor oameni, care nu permite schimbări lor invadează directorul nostru de lucru. Apoi, în loc de tip pull

Așa că luați doar acum istoria lor. Deși directorul de lucru rămâne neatinsă, ne putem referi la orice sucursală a oricărei echipe depozit, care lucrează cu Git, din moment ce avem acum o copie locală.

Rețineți că este trage doar fetch. și apoi îmbinați. De obicei, vom folosi trage. pentru că vrem să te toarne mai târziu se angajeze după primirea filialelor din străinătate. Situația descrisă - o excepție notabilă.

Pentru a afla cum să dezactivați arhive la distanță, ignora anumite ramuri, și mai mult, a se vedea GIT de ajutor telecomanda.

Setările mele

Prefer sa avem oameni care unesc proiectele mele, creați magazia, din care pot obține schimbări prin utilizarea de tragere. Unele Git hosting vă permit să creați propriile furci de proiect într-o singură atingere.

La primirea arborelui de la un depozit la distanță am alerga Git comenzi pentru a naviga și de a examina schimbările, în mod ideal, bine organizate și descrise. Fac o fuziune cu modificările și, eventual, introducerea unor modificări suplimentare. Când sunt mulțumit de rezultat, am completați modificările la magazia principală.

In timp ce colaborarea cu mine un pic, cred că această abordare scalează bine. A se vedea acest articol de blog de Linus Torvalds.

articole similare