Git funcționează într-un mod interesant pentru a transporta un istoricul modificărilor de fișiere. Deși poate părea că caută schimbările în fiecare dintre acestea, ceea ce face cu adevărat este să poarte un fișier numit index, în care sunt inserate modificările care au loc. În acest fel, doar citind fișierul index puteți ști ce fișiere și ce conținut din ele a fost modificat.
Odată ce am înțeles acel concept de cum Git Este nevoie de modificările înregistrate, este momentul în care putem începe să profităm din plin de instrument, deoarece este în acest moment când vom putea începe să folosim diferitele comenzi pentru a prelua modificările din depozitul nostru și a le gestiona dintr-o logică perspectivă.
Clasificarea fișierelor în Git
Înainte de a continua cu puncte mai profunde, trebuie să vedem cum Git vă clasifică fișierele. Aceasta nu înseamnă o clasificare după tipul de fișier datorită extensiei sale, ci mai degrabă prin stării sale în raport cu depozitul nostru și cu fișierul său index.
În principiu avem trei tipuri de fișiere în GIT, fiecare are propriul moment în depozit, să vedem care sunt acestea:
UrmăritAcest tip de fișier este deja adăugat în depozitul nostru și este luat în considerare de index iar un fișier ia această stare odată ce l-am adăugat cu următoarea comandă.
git add nume de fișierIgnoratÎn această clasificare un fișier ignorat nu este luat în considerare de către Git Când se fac modificări, fișierele care suferă o mulțime de modificări sau care nu sunt vitale pentru stabilitatea proiectului sunt clasificate în mod normal în acest fel, de exemplu fișierele de imagine datorită greutății lor sau poate scripturilor de Bază de date că nu trebuie să modificăm întotdeauna. Pentru a ignora un fișier, numele acestuia trebuie să fie inclus într-un fișier numit .gitignore și adăugați-l în depozitul nostru.
Fără urmărireAcest tip de fișier nu aparține încă depozitului nostru deoarece nu l-am adăugat încă și este nou în sistemul de fișiere, se întâmplă de obicei atunci când creăm un fișier nou într-un depozit deja inițializat sau când inițializăm un depozit într-un folder care are fișiere existente.
Exemplu practic de clasificare a fișierelor
Să vedem acum un mic exemplu practic despre cum putem detecta tipurile de fișiere într-un depozit Git, pentru aceasta trebuie să urmăm următorii pași:
1- Vom crea un nou folder pe computerul nostru numit fișiere git.
2- Odată ce folderul este creat, îl vom introduce din consola noastră și acolo vom executa comanda git init și apoi o facem starea git Pentru a vedea starea depozitului nostru, să vedem cum arată aplicația comenzilor anterioare:
3- Când vom finaliza pasul anterior vom avea un depozit Git inițializat și gata de lucru, atunci putem crea un fișier nou în acel folder și îl vom face din nou starea git pentru a vedea schimbarea, trebuie să avem noul nostru fișier sub clasificare nedetectat.
4- Vom repeta pasul anterior și vom crea un fișier nou, dacă vom vedea rezultatul repetării starea git vom număra ambele fișiere, să vedem:
5- Acum vom crea un nou fișier numit .gitignore, notați punctul dinaintea fișierului și în interior vom plasa numele unuia dintre fișierele noastre anterioare, o vom face din nou starea git și vom vedea că acum primim doar fișierul care nu este în el .gitignore și fișierul .gitignore tocmai am creat:
6- Atunci vom face o git add. pentru a adăuga toate fișierele noastre și în cele din urmă vom executa un git commit -m "commit inițial" prin aceasta adăugând fișierele noastre în depozit, dacă modificăm fișierul pe care nu îl plasăm în .gitignore și îl salvăm, dacă alergăm din nou starea git vom vedea un fișier în stare sau clasificare urmărit.
Comanda git add
În exemplul anterior am putut vedea utilizarea git add și poate ne putem gândi că este încă o comandă a instrumentului nostru, dar acest lucru este foarte important, este cel care ne permite adăugați un fișier în depozitul nostru dacă nu există încă în acesta și ne permite, de asemenea, să adăugăm modificările care s-au întâmplat unui fișier existent în depozitul nostru.
Cum se folosește?Are câteva modalități de a fi utilizate, cel mai frecvent este de a face git add nume de fișier, unde îi spunem ce fișier să adăugăm sau dacă nu putem face git add. unde punctul reprezintă toate fișierele care au fost modificate sau nu se află în depozit.
Este foarte important ca după efectuarea oricăror modificări în depozit să adăugăm fișierele cu git add, întrucât altfel nu vom putea salva modificările noastre, pe lângă crearea diferitelor versiuni ale fișierului, ceea ce poate duce la un posibil conflict în viitor.
Folosind git add
În interiorul dosarului nostru fișiere git pe care l-am creat în exemplul anterior al tutorialului, vom adăuga un nou fișier pe care îl vom plasa newFile3 și apoi în fișierul existent care nu se află în el .gitignore să facem o schimbare.
Ceea ce vrem să realizăm cu acest lucru este să testăm cum să folosim comanda noastră git add, să vedem cum arată acest lucru în consola noastră de comandă:
După ce am urmat instrucțiunile anterioare, ar fi trebuit să avem ceva asemănător celor de mai sus pe ecran, unde ni se arată un fișier modificat și a fișier nou în depozit.
Acum vom adăuga noul fișier în depozit, dar nu o vom face cu fișierul existent sau cu cel pe care l-am modificat anterior. Pentru aceasta trebuie doar să facem git add ourfilename. Atunci vom face starea git. Sa vedem:
După cum putem vedea, depozitul nostru ia deja în considerare fișierul cu care am adăugat git add, acesta este modul în care putem lucra practic la modificările fișierelor noastre.
Ștergeți fișierele din depozit
Următoarea acțiune pe care trebuie să o știm este să eliminăm fișierele din depozitul nostru, deoarece este foarte obișnuit că am creat ceva din greșeală sau pur și simplu punem lucrurile în ordine.
Există două lucruri de luat în calcul, putem elimina fișierul din index din depozitul nostru, dar păstrați fișierul menționat în sistemul folderului nostru, deci dacă facem un starea git Îl vom vedea din nou disponibil. Sau dacă nu putem șterge fișierul atât din folderul nostru, cât și din index din depozitul nostru, pentru aceasta putem folosi comanda git rm.
Comanda git rm - -cached
Prin utilizarea comenzii rm cu opțiunea adăugată de în cache, ceea ce facem este să ștergem fișierul în cauză din indexCu toate acestea, o vom păstra pe computerul nostru, această comandă este folosită foarte mult atunci când nu dorim să adăugăm acest fișier în depozitul nostru, dar trebuie să salvăm celelalte modificări.
Pentru ao folosi, pur și simplu facem comanda atunci când am adăugat deja cu git add un fișier, să vedem cum arată acest lucru în consola noastră de comenzi:
Observăm că fișierul newFile3 pe care l-am adăugat în depozitul nostru acum nu există și are clasificarea nedetectat.
Comanda Git rm
Acum să vedem cum să folosim comanda git rm, această comandă este mult mai puternică, deoarece elimină direct fișierul din index și a fişier, de aceea trebuie să fim atenți atunci când decidem să o folosim în depozitul nostru, este foarte probabil ca odată aplicată să nu mai putem recupera modificarea.
Să vedem în exemplul următor cum funcționează atunci când îl aplicăm la un fișier, în acest caz vom adăuga newFile3 cu git add și atunci vom aplica acest lucru git rm:
Vedem asta când o facem direct git ne arată o eroare și ne cere să efectuăm o ștergere forțată la adăugarea parametrului -F instrucțiunii acest lucru se datorează importanței schimbării, în cele din urmă vom face o starea git și vom observa că respectivul fișier a dispărut din depozitul nostru în întregime.
Mai multe de la .gitignore
Am putut vedea că putem adăuga un fișier specific fișierului nostru .gitignoreCu toate acestea, atunci când lucrăm într-un mediu în care gestionăm sute sau poate mii de fișiere, nu este foarte practic, de aceea putem folosi modele.
Un model ne va permite să indicăm Git că un fișier care îndeplinește secvența de caractere sau expresie trebuie ignorat, cu aceasta putem indica extensii specifice, fie în întregul proiect, fie într-un folder special. Să vedem un exemplu în acest sens.
* .jpg.webp va ignora toate fișierele .jpg.webp ale proiectului nostru, dar dacă dorim să păstrăm urmele unuia în special, trebuie doar să adăugăm:
! filename.jpg.webpEste atât de simplu, avem o structură puternică și complexă care ne permite să ne păstrăm depozitul organizat.
Cu aceasta terminăm acest tutorial, am văzut într-un mod extins modul în care Git transportă sau gestionează modificările din fișierele noastre, este important să stăpânim această chestiune, deoarece cu aceasta vom putea lucra mai eficient în medii de echipă în care este tratată Git ca controler de versiune.