Structura depozitului Git
Structura depozitului Master Git pe VPS-ul dumneavoastră AlexHost
De ce să folosiți Git pe AlexHost? Git este o piatră de temelie a controlului versiunilor, iar găzduirea depozitelor dvs. pe un VPS AlexHost vă oferă control deplin cu acces root, stocare NVMe ultra-rapidă și medii sigure protejate de DDoS. Fie că sunteți un dezvoltator solo sau gestionați o echipă, VPS-ul flexibil de la AlexHost vă asigură că fluxurile de lucru Git se desfășoară fără probleme. Acest ghid detaliază structura unui depozit Git și modul de utilizare a acestuia pe serverul AlexHost.
1. Directorul de lucru
Directorul de lucru este locul în care se află fișierele reale din proiectul dvs. Atunci când clonați un depozit Git, obțineți o copie a tuturor fișierelor urmărite, care sunt plasate în directorul dvs. de lucru. Aceasta este zona în care editați în mod activ fișierele, efectuați modificări și adăugați conținut nou
- Fișiere modificate: Orice fișier pe care îl editați în directorul dvs. de lucru va fi considerat modificat până când îl etapizați sau resetați modificările.
- Fișiere fără urmărire: Fișierele care nu sunt încă urmărite de Git vor apărea în directorul de lucru ca neevidențiate până în momentul în care sunt puse în scenă și trimise.
2. Staging Area (Index)
Zona de pregătire (numită și index) este un loc intermediar în care sunt colectate modificările aduse fișierelor înainte de a le trimite în depozit. Adăugați fișiere sau modificări în staging area utilizând comanda git add. Modificările din staging area vor face parte din următorul commit
- Adăugați modificări în Staging Areagit add <fișier>
- Vizualizați Staging Area: Puteți vedea ce se află în staging area folosind git status.
3. Directorul Git ( folderul .git)
Directorul Git, stocat în folderul .git, este inima oricărui depozit Git. Acesta conține toate informațiile esențiale despre istoricul, configurația și starea curentă a proiectului dumneavoastră. Acest director este creat automat atunci când inițializați sau clonați un depozit Git
Componentele cheie ale directorului .git:
- HEAD: Un fișier care indică commit-ul curent din ramura dvs.
- Ramuri: Conține informații despre ramurile din depozit.
- Objects (Obiecte): Stochează toate obiectele, cum ar fi comits, blobs (date de fișier) și arbori (structură de directoare).
- Refs: Conține referințe la comits, inclusiv heads (ramuri), tag-uri și ramuri de urmărire la distanță.
- Config: Fișierul de configurare pentru depozitul dvs. local, unde sunt stocate setări precum telecomenzi sau informații despre utilizator.
- Logs (Jurnale): Stochează jurnalele pentru toate activitățile, cum ar fi comits, checkouts și rebases.
- Hooks: Scripturi personalizate care pot declanșa acțiuni înainte sau după anumite evenimente Git (de exemplu, commit, push).
4. Istoricul comenzilor
Fiecare confirmare este un instantaneu al depozitului dvs. la un anumit moment în timp. Un commit include modificări ale fișierelor împreună cu metadate precum mesajul de commit, autorul și marca temporală. Confirmările formează istoricul proiectului dvs
- Confirmările sunt stocate în directorul .git/objects.
- Fiecare confirmare indică confirmarea anterioară (cu excepția primei), formând un lanț legat care poate fi vizualizat ca istoria proiectului.
5. Ramuri
O ramură este un indicator către un anumit commit, permițându-vă să lucrați simultan la diferite versiuni ale proiectului dvs. În mod implicit, Git începe cu o ramură numită main (sau master în versiunile mai vechi)
- Pointer de ramură: Ramurile sunt pur și simplu pointeri către un commit. Crearea unei noi ramuri înseamnă crearea unui pointer către comiterea curentă, permițându-vă să faceți noi comitere pe acea ramură fără a afecta alte ramuri.
- HEAD: Indicatorul HEAD în Git indică ramura curentă sau commit-ul la care lucrați. De obicei, indică cea mai recentă comandă din ramura curentă.
6. Etichete
Etichetele sunt referințe la puncte specifice din istoricul dvs. Git, adesea utilizate pentru a marca versiunile de lansare (de exemplu, v1.0, v2.0). Spre deosebire de ramuri, etichetele nu sunt actualizate cu noi comitete
- Etichete ușoare: Acestea sunt simple indicatoare către un commit, similar cu o ramură.
- Etichete adnotate: Conțin metadate suplimentare, cum ar fi numele etichetantului, data și un mesaj de etichetare.
7. Remote
Un remote în Git este o referință la o copie a depozitului dvs. care este găzduită în altă parte, adesea pe platforme precum GitHub, GitLab sau Bitbucket. Remoturile sunt utilizate pentru colaborare, permițându-vă să transmiteți sau să preluați modificări din alte copii ale depozitului
- Origine: În mod implicit, depozitul principal la distanță se numește origine.
8. Obiecte în Git
Directorul de obiecte Git (.git/objects) conține cele patru tipuri principale de obiecte care alcătuiesc istoricul depozitului
- Blob: Stochează conținutul real al unui fișier.
- Arbore: Reprezintă un director, asociind numele fișierelor cu obiecte blob și subdirectoare (alte obiecte arbore).
- Commit: Stochează metadatele despre fiecare modificare (autor, dată, mesaj) și trimite la un obiect arbore.
- Tag: Trimite la un commit și stochează informații despre tagger și mesaj (în cazul tag-urilor adnotate).
9. Hooks
Git vă permite să definiți scripturi personalizate (cârlige) care se pot declanșa în diferite etape ale fluxului de lucru Git. Aceste scripturi pot fi rulate automat după sau înainte de evenimente precum comiterea, împingerea sau fuzionarea. Hooks pot impune calitatea codului, pot executa teste sau pot declanșa conducte CI/CD. Hooks sunt stocate în directorul .git/hooks/
- Cârlig pre-commit: Se execută înainte de crearea unui commit.
- Cârlig post-commit: Se execută după crearea unui commit.
10. Jurnale
Git stochează jurnale ale tuturor acțiunilor din depozit, cum ar fi comenzile, verificările, fuziunile și revenirile. Aceste jurnale ajută la depanarea și revizuirea acțiunilor întreprinse în depozit
- Git Reflog: Păstrează o înregistrare a tuturor modificărilor aduse indicatorului HEAD, permițându-vă să vă recuperați după acțiuni precum resetarea unei ramuri.
Rezumat al structurii depozitului Git
- Director de lucru: Conține fișiere și directoare în starea lor curentă.
- Staging Area (Index): Locul în care modificările sunt stocate înainte de comitere.
- Directorul Git (.git): Conține datele de bază, inclusiv obiectele, configurația și jurnalele.
- Commits: Înregistrarea modificărilor cu metadate, formând istoricul proiectului.
- Ramuri: Indicatori către anumite commits care permit dezvoltarea paralelă.
- Etichete: Referințe denumite la anumite comits, de obicei pentru marcarea versiunilor.
- Remotes: Referințe la depozite găzduite în altă parte pentru colaborare.
- Obiecte: Componentele de bază în Git, inclusiv blobs, arbori și commits.
Prin înțelegerea acestei structuri, puteți naviga și gestiona depozitul Git în mod eficient, asigurând o colaborare și un control al versiunilor fără probleme pe parcursul dezvoltării proiectului.