Git a devenit cel mai utilizat sistem pentru controlul versiunilor și partajarea codului. Dacă doriți să contribuiți la crearea de software open source sau dacă doriți să lucrați la o echipă profesionistă, înțelegerea Git este o necesitate.
Într-o serie de cursuri Git pe Envato Tuts +, am explicat câteva din conceptele Git de bază, toate ilustrate cu animații utile.
În acest videoclip, veți afla despre cei trei copaci: HEAD, indexul și directorul de lucru. Uita-te la cum îmi explic rolul fiecăruia și cum interacționează în timp ce actualizați și comiteți codul.
Pentru a înțelege mai bine modul în care funcționează Git, putem folosi metafora celor trei copaci. Acești arbori sunt colecții diferite de fișiere.
Pentru fluxul de lucru al adăugării și preluării comitetelor, Git utilizează trei versiuni diferite ale fișierelor:
Fiecare dintre acești copaci are o funcție diferită: un copac pentru a scrie modificări, un copac pentru a le pune în scenă și unul pentru a vă indica ultimul angajament pe o ramură în reputația dvs. Git.
Fișiere ale căror conținut pot fi modificate se află în directorul dvs. de lucru. Fișierele plasate în indexul dvs. se pregătesc să fie ambalate într-un obiect de comitere. Aceste comitete sunt salvate în depozitul dvs. Git.
Fișierele care au fost deja angajate sunt fișiere comprimate. Acestea sunt rulate printr-o funcție SHA-1, o funcție hash criptografică. Ambele versiuni de fișiere din index și comiterea ei înșiși sunt salvate în replica Git, care este pur și simplu o replică .git la nivelul rădăcinii foliei.
Directorul de lucru reprezintă fișierele reale din sistemul de fișiere ale computerului, care sunt disponibile editorului de cod pentru a aplica modificări. Directorul de lucru este o versiune a unui comitet special, un instantaneu particular al unui proiect pe care l-ați verificat. Este versiunea istoriei Git pe care o arată HEAD, la un moment dat.
"Verificat" înseamnă că aveți versiunile decomprimate ale fișierelor extrase din depozitul Git, disponibile pentru editare. Indicele reprezintă ceea ce este urmărit. De asemenea, ați putea spune că este vorba de o listă a tuturor fișierelor relevante pentru depozitul dvs. Git.
Indicele merge cu câteva nume. Când oamenii vorbesc despre zona de așteptare, fișierele în scenă, memoria cache sau directorul de cache, toți vorbeau despre index. Puteți vedea indexul ca zonă de proiectare pentru următorul comitet, o zonă temporară pentru a pregăti următorul angajament.
HEAD este partea din git care indică ramurile dvs., ca ramura principală în mod implicit. Este o referință și are o treabă destul de simplă, dar foarte importantă. HEAD indică ramura curentă verificată și care, la rândul său, indică ultimul angajament din acea ramură. HEAD se poate deplasa nu numai în timp (când verificați comitetele anterioare), dar se mișcă, de asemenea, atunci când creați sucursale noi sau pur și simplu treceți la alte sucursale.
De asemenea, este punctul din istoria dvs. Git pe care vă puteți plasa următoarea comitet la dvs., părintele pentru următorul comitet. Cu fiecare comitere nouă, înlocuiește referința la sucursala curentă selectată în mod prestabilit, filiala principală, desigur.
Deci, în realitate, HEAD este o referință care se schimbă frecvent și indică două lucruri: sucursala însăși, și prin aceasta, ultimul angajament pe acea ramură.
Să aruncăm o privire mai atentă la fluxul de lucru al fișierelor din Git. Este esențial să înțelegeți cum se potrivesc toate aceste piese împreună. Veți avea mult mai ușor să înțelegeți mai multe funcții și concepte avansate în Git după aceea.
Iată un exemplu:
În acest exemplu, am făcut două versiuni ale fișierului nostru. Și puteți vedea că versiunile din repo, index și directorul de lucru sunt una și aceeași. Deoarece aceste fișiere sunt deja urmărite, Git va observa diferențe atunci când schimbați oricare dintre aceste fișiere urmărite în directorul de lucru.
Când rulați git status
comanda, veți vedea o listă de fișiere care au fost schimbate, colorate în roșu. Acest lucru indică faptul că aveți diferențe între directorul dvs. de lucru, reprezentat de codul din editorul de cod și indexul dvs., care reprezintă versiuni ale fișierelor dintr-un anumit comitet, cel mai frecvent ultimul comitet.
Puteți rula acum adăugați git
comanda pentru a pune aceste modificări din directorul de lucru în indexul în care ați pus în scenă fișierele. git status
va afișa apoi fișierele adăugate la indexul colorat în verde. Aceasta înseamnă că modificările dvs. sunt gata să fie împachetate într-o nouă comitet, pe care HEAD poate să o îndrepte și să o dezvolte.
O listă verde de fișiere înseamnă pur și simplu că versiunile fișierelor în scenă din index sunt diferite de versiunile de fișiere deja angajate anterior. Când alergi git comite
, aceste fișiere staged vor fi puse într-un obiect nou de comitere. git comite
comandă va salva numele unui fișier, conținutul fiecărui fișier, informațiile despre autor, metadatele și altele asemenea într-un obiect nou.
Acest obiect de comitet, care acum trăiește într-o .git
director în repo, va fi noua referință la care se îndreaptă HEAD. Revenind la angajamentele anterioare, este un vârf al aisbergului într-un fel. După ce am creat obiectul de comitere, suntem din nou la începutul ciclului.
Comitetul pe care HEAD indică în repo se potrivește din nou versiunilor din index și din directorul de lucru, care este pregătit pentru ca schimbările noi să fie puse în scenă și angajate. Sfarsitul povestii.
Dacă ați găsit acest lucru util, de ce nu verificați mai multe cursuri Git?
Ai putea viziona introducerea noastră în Git și GitHub sau încerca celelalte cursuri de cafea în această serie: