O introducere în Git

Publicat: 2022-06-30

Indiferent dacă construiți un site web nou-nouț, dezvoltați o temă sau un plugin sau configurați strategii avansate de integrare continuă și implementare, veți lucra cu cod.

Sub fiecare site web, se execută cod – indiferent dacă utilizați WordPress, WooCommerce, Drupal, Magento, NextJS sau chiar HTML codificat manual. Există seturi de fișiere necesare pentru ca fiecare pagină să fie randată și să afișeze conținutul lumii.

Ceea ce descoperi rapid este că ai nevoie de o modalitate de a urmări modificările codului în timp. Trebuie să știți ce modificări sunt în cea mai recentă versiune a oricărui fișier și cine a făcut fiecare modificare.

Aici intervine Git. Continuați să citiți pentru a afla despre Git, lucrul cu depozite Git de la distanță și multe altele.

Înțelegerea Git

Git este un sistem de control al versiunilor care le permite dezvoltatorilor și oricui altcineva care lucrează cu fișiere să creeze și să stocheze cu ușurință versiuni ale modificărilor lor, să vadă un istoric al acestor modificări și să partajeze acele modificări între dispozitive și sisteme, oferind în același timp o modalitate pentru a anula acele modificări în cazul în care ceva nu merge bine.

O scurta istorie

În 2005, o echipă de dezvoltatori crea un proiect numit Linux, sistemul de operare gratuit și open source. Aveau nevoie de o modalitate de a comunica cu ușurință schimbările între sute de colaboratori. Inițial, au transmis patch-uri individuale care conțineau codul actualizat, dar acest lucru s-a dovedit problematic pe mai multe fronturi, mai ales când s-a determinat care era versiunea „adevărată” și cea mai recentă a oricărui set particular de modificări.

Frustrat de aceste probleme, proiectul Linux l-a determinat pe Linus Torvald să implementeze o idee destul de nouă pentru un proiect care să partajeze întreaga bază de cod între dezvoltatori și să facă „instantanee” ale modificărilor acestora, numite commit-uri, care ar putea fi partajate și îmbinate cu orice altă copie a codul, oriunde în lume. Imediat, acest lucru a ajutat la comunicare, deoarece toate schimbările de proiect puteau fi privite ca un singur istoric.

Acea metodă de captare a acestor instantanee este Git, care și-a luat rapid viață proprie și a fost dezvoltată independent de proiectul Linux de atunci.

Un grafic al schimbărilor

Din punct de vedere conceptual, vă puteți gândi la Git ca la un grafic de noduri, unde fiecare nod este un instantaneu al întregului proiect la un moment dat. Cartea Git, de pe git-scm.com, conturează structura unui instantaneu.

Git stochează datele ca instantanee ale proiectului de-a lungul timpului

Acest lanț de instantanee creează un grafic în timp, cu cea mai recentă versiune în față sau în partea de sus a istoricului modificărilor. Fiecare instantaneu este denumit „commit” în Git.

Iată o privire rapidă la cum arată un proiect Git dacă puneți cea mai recentă modificare în partea de sus a graficului. Notă – acest exemplu utilizează interfața grafică GitKraken Git pentru a vizualiza graficul.

Exemplu de grafic git

Construirea graficului Git

Git construiește acest grafic al modificărilor, cunoscut și sub numele de istoricul Git, printr-un proces de efectuare a modificărilor. Cu toate acestea, înainte de a putea efectua modificări, va trebui să îi spuneți în mod specific lui Git ceea ce doriți să adăugați la acel instantaneu sau să comitați așa cum este menționat în mod corespunzător în Git.

Când lucrați local, toate modificările pe care le salvați în proiectul dvs. sunt în „Directorul de lucru”. Git poate vedea acele modificări, dar nu știe încă ce modificări doriți să efectuați. Va trebui să îi spuneți lui Git în mod explicit ce modificări doriți să efectuați, folosind o comandă numită „git add” pentru a adăuga acele fișiere specifice în „zona de pregătire” a lui Git.

Odată ce aveți modificările fișierului pe care doriți să le efectuați în graficul instantaneelor ​​de proiect, puteți utiliza comanda „Git commit” pentru a construi permanent acel instantaneu pe grafic.

Pașii de adăugare și confirmare Git

Înapoi în timp

Unul dintre avantajele Git și de a avea la dispoziție întregul istoric al proiectului este că vă puteți întoarce înapoi și puteți anula orice modificare în orice moment.

Dacă ultima comitere pe care o faceți întrerupe ceva sau vă răzgândiți cu privire la ceea ce ați făcut, puteți face o „revenire Git” pentru a anula comiterea Git. Acest lucru creează un nou commit pe grafic care pur și simplu anulează modificările pe care tocmai le-ați făcut.

Dacă vrei să sări înapoi în timp și să pară că nu ai făcut niciodată un commit, poți folosi „Git reset” pentru a face acest lucru.

Puterea ramificării și fuziunii în Git

Una dintre cele mai puternice caracteristici pe care ni le oferă Git este capacitatea de a crea realități alternative paralele. Nu chiar.

Deoarece faceți un grafic al comitărilor de-a lungul timpului, puteți alege să faceți linii paralele de comitere, numite ramuri, din orice punct al istoricului dvs. O ramură Git nou creată este independentă de istoricul principal, ceea ce înseamnă că sunteți liber să faceți orice modificări doriți și nu vă va afecta celelalte lucrări. Cronologia principală este, de asemenea, o ramură și este denumită cel mai frecvent ramură „principală” sau „master”. Noile ramuri și ramuri, altele decât cele principale, sunt denumite în mod obișnuit „ramuri caracteristice”.

Odată ce ați făcut modificările la ramura dvs. de caracteristică, puteți aplica toate modificările la ramura principală realizând o îmbinare Git.

Există un mare avantaj să lucrezi în acest fel. O ramură caracteristică izolează modificările codului, așa că dacă introduceți erori, puteți fi sigur că ramura principală este în siguranță. Lucrul în sucursale eliberează și ramura principală în cazul în care trebuie să aplicați o actualizare sau o remediere de securitate fără a întrerupe activitatea de dezvoltare în curs.

Fuziunea Git vă permite, de asemenea, să trageți modificări de la ramura principală într-o ramură de caracteristici. Acest lucru vă oferă posibilitatea de a vă asigura că actualizările făcute pentru ramura principală vor funcționa în continuare cu modificările propuse înainte de a încerca să le îmbinați cu „principal”.

Dacă lucrați cu o echipă, o strategie de ramificare Git poate asigura că echipa dvs. poate testa modificările în detaliu înainte de a ajunge în producție și oferă o modalitate simplă de a gestiona procesul.

Lucrul cu arhivele de la distanță în Git

Unul dintre obiectivele majore ale Git este să simplifice partajarea codului cu oameni din întreaga lume. Încorporată în Git este noțiunea de depozit la distanță.

Un depozit Git este întregul folder al proiectului în care vă stocați munca și este ceea ce Git urmărește în timp. Fiecare depozit poate fi clonat folosind comanda Git clone și partajat de un număr nelimitat de ori, făcând Git foarte scalabil.

Un alt aspect care face Git foarte scalabil este că, dacă modificați un document, nu este nevoie să stocați o copie complet nouă a documentului respectiv. Modificările sunt stocate ca pachete mici de informații denumite „deltas” și doar liniile modificate individual ale unui fișier și puține date despre schimbare sunt ceea ce Git trebuie să stocheze sau să partajeze. Deltele sunt foarte ușoare, adesea de doar câțiva octeți. De exemplu, dacă modificați o singură linie într-un document de 100 KB, delta va fi de numai 20 de octeți sau cam asa ceva.

Pentru a menține totul în linie și consecvent în toate copiile unui depozit, trebuie pur și simplu să desemnați care copie, situată pe ce computer, este copia „adevărată” a proiectului, apoi asigurați-vă că commit-urile dvs. ajung la acea copie.

Acest lucru funcționează și în alt mod. Când colaborezi cu alții, poți trage modificările acestora în copia locală a depozitului pentru a te asigura că copia locală a proiectului este actualizată.

Modelul git de lucru cu depozite de la distanță

Există o serie de companii care fac colaborarea pe depozite de la distanță extrem de simplă și de gestionat. Platforme precum GitHub, GitLab și BitBucket oferă instrumente de găzduire și colaborare pentru depozitele Git online. Există multe milioane de depozite Git online care sunt gestionate de milioane de dezvoltatori, iar Git urmărește fiecare sursă de adevăr, indiferent de câți oameni colaborează.

Ce nu trebuie stocat în Git

Să vorbim despre ceea ce probabil nu ar trebui să faci cu Git. Deși Git este uimitor la partajarea codului și la urmărirea modificărilor de-a lungul timpului, există unele locuri de muncă care nu sunt potrivite pentru model. Din fericire, Git ne oferă o modalitate la îndemână de a-i spune să ignore lucrurile, numită fișier „.gitignore”.

Dacă este prezent un fișier „.gitiginore”, Git îl va verifica pentru a vedea dacă ar trebui să urmărească acele elemente. În interiorul unui „.gitiginore” puteți lista nume de fișiere individuale, directoare întregi sau tipuri întregi de fișiere. De exemplu, dacă doriți să excludeți toate fișierele .png și .jpg și întregul folder „wp-content/uploads”, în fișierele „.gitiginore” veți scrie pur și simplu:

 *.png *.jpg wp-content/uploads

De ce să excludeți fișierele media din Git?

Git stochează instantanee ale unui proiect și trece doar „deltele” în jur. Dar dacă fișierul în cauză este un „blob” de date, cum ar fi o imagine, un videoclip sau orice alt fișier binar, fiecare modificare a fișierului va crea un bloc cu totul nou de date. Apoi, Git trebuie să-și amintească starea atât a blob-ului vechi, cât și a noului blob, adăugând o mulțime de dimensiuni inutile la depozit. Acest lucru se acumulează în timp, iar depozitele devin în curând greoaie pe măsură ce pierzi beneficiile ușoare ale Git.

Credeți sau nu, este posibil să nu doriți să urmăriți modificările în nucleul WordPress în sine. Există câteva motive pentru aceasta.

În primul rând, există o zicală veche cu orice CMS: „Nu hack core!” Nu ar trebui să existe nimic din ceea ce schimbați în nucleul WordPress, care va trebui urmărit. Orice actualizări va trebui să vină de la WordPress însuși și, dacă doriți o versiune anterioară, aceasta este ușor de specificat când o instalați. Puteți stoca cu siguranță o întreagă instalare WordPress în Git, dar nu este foarte important să faceți acest lucru în anumite situații. Chiar doriți doar să urmăriți modificările aduse codului pe care îl manipulați, cum ar fi pluginurile dvs. personalizate și temele secundare. Este o idee foarte bună să verificați cu furnizorul dvs. de găzduire pentru sfaturile sale cu privire la acest subiect.

În al doilea rând, dacă intenționați să contribuiți înapoi la WordPress, veți descoperi că acesta este de fapt întreținut printr-un sistem de control al versiunilor mai vechi numit SVN. Acest model necesită o infrastructură centrală de server și este mult mai puțin popular în comparație cu Git, dar, din nou, WordPress este mai vechi decât Git. Lucrul cu sistemul de corecție SVN este puțin diferit și ar trebui să consultați documentația lor pentru mai multe despre aceasta.

Concluzie

Sperăm că acum înțelegeți mai bine ce este Git și cum poate fi folosit pentru a lucra cu codul site-ului dvs. web. Git poate fi folosit pentru toate fișierele pe care le veți modifica în timp, chiar dacă nu este cod de computer.

Git se referă la utilizatorii țintă ca „lucrători ai cunoașterii”, un termen vechi împrumutat de la IBM. Pentru orice, de la note de pe desktop la rețete, la cărți întregi, Git vă oferă o modalitate de a vă organiza mai bine munca și de a vă lăsa o urmă solidă a motivului pentru care ați făcut fiecare modificare și când a fost făcută.

Puterea de a vă întoarce în timp și de a vă vedea modificările, combinată cu abilitatea de a lucra în universuri paralele nelimitate cu ramificare și îmbinare, face din Git un instrument indispensabil pentru oricine lucrează la cod. Git este, de asemenea, principalul mod în care echipele colaborează la proiecte de cod.

Git este gratuit de utilizat și majoritatea GUI-urilor Git, cum ar fi GitKraken, au versiuni gratuite. Nu există niciun motiv pentru care să nu folosiți Git pentru a vă urmări munca, așa că „Git” la el!

Resurse conexe

- Dezvoltare locală WordPress cu XAMPP

- Utilizare și fluxuri de lucru avansate Git

- Git Hooks

- Ce este un site de dezvoltare?

- Memorarea în cache pentru WordPress