Introducere în Git

Publicat: 2022-06-30

Când am început să construiesc site-uri web, am „codificat cowboy”, ceea ce înseamnă că deseori editam fișiere live pe server. Mi-au trebuit doar câteva site-uri defecte ca să-mi dau seama că aceasta a fost o idee groaznică. Apoi am început să construiesc site-uri local pe computerul meu. De mai multe ori am editat un fișier local doar pentru a migra fișierul în locația greșită în clientul meu FTP. Ocazional, asta ar însemna că aș suprascrie un fișier pe care nu l-am putut repara fără să caut o copie de rezervă pe care speram că o păstrasem.

Dacă încă ai de-a face cu FTP și nu poți să-ți rulezi fișierele înapoi, atunci este timpul să înveți despre utilizarea Git pentru controlul versiunilor.

Ce este Controlul versiunilor?

Un sistem de control al versiunilor (VCS) este un tip de software care îi ajută pe dezvoltatorii de software să gestioneze modificările aduse codului lor în timp. Un sistem VCS bun va urmări fiecare modificare a codului care este făcută. Aceasta înseamnă că dacă spargeți ceva, puteți reveni la o versiune anterioară a codului care funcționa, fără a încerca să apăsați „Anulați” până când lucrurile funcționează.

Într-un mediu de echipă, un VCS vă va ajuta să lucrați cu diferiți membri, oferindu-vă instrumente care vă vor permite să îmbinați modificările de cod împreună atunci când diferiți membri actualizează fișierele.

Unul dintre lucrurile pe care le fac în Git este să creez o nouă ramură pentru fiecare caracteristică pe care o construiesc. Aceasta înseamnă că pot urmări modificările pe care le fac pe o ramură, dar totuși revin la starea actuală a site-ului, deplasându-mă înapoi la ramura principală. Vom vorbi mai multe despre acest flux de lucru mai târziu.

Ce este Git?

Git este un sistem de control al versiunilor, dar nu este singurul. Depozitul principal WordPress este rulat prin SVN, deși puteți găsi și o copie Git. Există, de asemenea, Mercurial, Visual Source Safe, VESTA și multe alte opțiuni.

În ciuda tuturor acestor opțiuni, Git este ceea ce folosește aproape toată lumea, așa că este controlul versiunii despre care vom afla astăzi.

Termeni și comenzi de bază Git

Înainte de a pătrunde în mecanica modului de utilizare a Git, trebuie să înțelegem câțiva termeni. Vom acoperi doar termenii pe care îi veți întâlni în mod regulat.

Pentru o listă mai completă a tot ceea ce ați putea întâlni, uitați-vă la aceasta Referință Git sau asta lista completă de comenzi Git .

Adăugați : Când ați făcut modificări codului dvs., veți folosi comanda git add pentru a adăuga modificările la, astfel încât acestea să poată fi comise.

Ramura : o ramură este o versiune a depozitului dvs. care are o diferență față de proiectul de lucru principal. Toate depozitele vin cu o ramură principală sau, mai frecvent în proiectele mai vechi, o ramură principală. Recent, Git și Github au început să schimbe numele implicit al ramurilor de la master la principal din cauza problemelor istorice cu cuvântul master. Git 2.28 vă permite, de asemenea, să setați numele implicit de ramură pentru orice proiect nou.

Checkout : utilizați comanda git checkout pentru a comuta între diferite ramuri dintr-un depozit. Când utilizați această comandă, Git modifică conținutul fișierelor sau adaugă și elimină fișiere care diferă între ramuri.

Clonare : Comanda git clone este folosită pentru a face o copie a unui depozit din depozitul sursă. Veți folosi această comandă pentru a obține o copie locală a unui depozit de la distanță, astfel încât să puteți lucra la cod.

Commit : Odată ce ați folosit git add , trebuie să utilizați git commit pentru a putea salva starea fișierelor dvs. în git.

init : git init creează un depozit gol pentru tine cu toate fișierele de bază de care Git are nevoie pentru a funcționa.

Merge : După ce ați făcut modificări într-o ramură și le-ați adăugat și confirmat, utilizați comanda git merge pentru a migra acele modificări în alte ramuri.

Origine : Acesta este numele implicit pentru versiunea principală a depozitului. De obicei, o schimb pe a mea pentru a fi mai descriptivă decât originea. Dacă lucrez cu Github, modific setările în Git, astfel încât originea să devină github. Acest lucru mă ajută să păstrez lucrurile clare în mintea mea.

Push : Actualizează ramura la distanță cu commit-urile care au fost făcute în versiunea locală a depozitului.

Depozitar : Acesta poate fi numit și „Repo” și este un director cu toate fișierele și un istoric Git al modificărilor aduse acelor fișiere.

Stare : git status vă arată starea curentă a depozitului dvs. de lucru.

.gitignore : Acesta este un fișier ascuns care conține modele de fișiere pe care Git nu se va deranja să le urmărească. Dacă aveți .DS_Store în fișierele dvs. .gitignore , atunci va ignora toate fișierele deranjante pe care macOS le pune adesea în foldere.

Găzduirea depozitelor Git

Un alt lucru de înțeles înainte de a vă scufunda este că, deși nu aveți nevoie de o locație la distanță pentru depozitul dvs., faptul că nu aveți una va reduce unele dintre beneficiile utilizării Git. Fără un depozit de la distanță găzduit în altă parte, nu veți avea o copie de rezervă a codului dvs. dacă computerul moare sau este furat.

Github și Bitbucket sunt două dintre cele mai populare locuri pentru a vă găzdui depozitele Git, deoarece acestea sunt în mare parte gratuite și puteți avea depozite private. Asta înseamnă că codul tău se află pe serverul altcuiva, așa că dacă nu-ți place ideea, poți folosi Gitlab pe serverul tău pentru a găzdui depozite.

Instalarea Git

Pe macOS, cel mai simplu mod de a instala git este să deschideți Terminal și să tastați git, ceea ce vă va solicita să descărcați instrumentele Xcode Command Line pentru a instala git. Odată ce s-a terminat, puteți rula git –version pentru a vedea ce versiune de git aveți. Dacă nu funcționează, există alte câteva modalități de a instala git pe macOS.

Pentru utilizatorii de Windows, puteți instala Git cu programul de instalare oficial Git. De asemenea, Git vine la pachet cu aplicația Github Desktop, despre care vom vorbi mai târziu.

Dacă sunteți pe Linux, git ar trebui să fie inclus cu managerul dvs. de pachete sau puteți consulta aceste moduri de a instala git pe Linux.

Configurarea valorilor implicite Git

Odată ce ați instalat Git, trebuie să îl configurați astfel încât fiecare comitere să vă folosească numele și e-mailul și mesajele de comitere pentru a utiliza editorul preferat pentru a introduce orice comentarii care însoțesc commit-ul. Vom analiza modul de setare a acestora în macOS prin intermediul aplicației Terminal.

git config --global user.name "Your Name" va seta numele care merge cu fiecare comitere făcută pe computer.

git config --global user.email "[email protected]" va seta adresa de e-mail care este asociată cu fiecare comitere pe care o faceți.

git config --global core.editor vim va face editorul implicit pentru Git vim. Deși îmi place vim, nu este editorul pe care îl iubesc toată lumea. Dacă utilizați Atom, atunci ați folosi git config –global core.editor „atom –wait” sau git config –global core.editor „subl -n -w” pentru Sublime Text.

Dacă sunteți în IDE, atunci Visual Studio Code vă permite, de asemenea, să lucrați cu Git direct din cadrul aplicației, dacă doriți, la fel ca PHPStorm .

Înființarea unui depozit

Acum că avem git instalat și configurat, să începem un depozit de bază. Deschideți terminalul și creați un folder numit test-repository tastând mkdir test-repository . Apoi tastați cd test-repository pentru a vă schimba în directorul test-repository și tastați git init .

În acest moment, veți avea un director ascuns în folderul dvs. numit .git . Deoarece este un fișier ascuns, va trebui să tastați ls -a în Terminal pentru a lista fișierele ascunse.

Folosind git add

Acum să creăm un fișier tastând touch test.txt în Terminal. Apoi tastați git status pentru a vedea fișierul pe care tocmai l-ați adăugat.

După cum puteți vedea, noul fișier pe care l-am creat apare în roșu și ne spune că starea lui nu este urmărită. Asta înseamnă că Git vede fișierul, dar nu are nicio înregistrare a acestuia.

Tastați git add test.txt pentru a-i spune lui Git să organizeze acest fișier, apoi tastați din nou git status și Git ar trebui să vă spună că știe despre un fișier modificat.

Trimiterea fișierelor în Git

Acum, după ce am adăugat fișierul, trebuie să-l comitem, astfel încât Git să salveze starea fișierului. Putem face acest lucru într-o singură linie, fără a deschide editorul nostru implicit cu următoarea comandă.

git commit -m 'adding our first file'

Steagul -m îi spune lui git că cuvintele din ghilimele simple sunt comentariul care merge cu comanda.

Acum, depozitul nostru are un singur fișier în el cu starea sa salvată.

Creați o sucursală

Adevărata putere a lui Git vine atunci când începeți să vă ramificați. Să presupunem că doriți să scrieți o grămadă în fișierul test.txt, dar nu sunteți sigur dacă îl veți păstra și doriți să vă asigurați că puteți reveni la fișierul gol. Putem face asta cu o ramură.

Pentru a crea o ramură, putem tasta git checkout -b new-branch . Aceasta este o comandă rapidă pentru a crea o ramură în același timp în care verificăm ramura și este ceea ce folosesc de fiecare dată când trebuie să creez o ramură.

Acum deschideți fișierul nostru test.txt , adăugați-i ceva text și salvați-l. Apoi utilizați git add și git commit ca mai sus pentru a salva starea fișierului.

Apoi, tastați git checkout master pentru a reveni la ramura principală implicită și apoi priviți din nou conținutul fișierului test.txt . Veți observa că tot textul pe care l-ați tastat a fost eliminat. Git ar șterge chiar și un fișier nou care se afla doar pe o ramură, deși păstrează o evidență a acestuia, astfel încât să nu dispară.

Fuzionați o sucursală

Acum, ne place orice am scris în fișierul nostru, așa că haideți să îl integrăm cu ramura noastră principală. Asigurați-vă că vă aflați în ramura principală și tastați git merge new-branch pentru a vă integra modificările.

Dacă te uiți la conținutul test.txt acum, vei găsi modificările pe ramura principală exact așa cum le-ai lăsat.

Utilizarea Git cu WordPress

Deși exemplul de mai sus a fost extrem de simplu, asta este tot ce aveți nevoie pentru a începe să utilizați Git în proiectele dvs. Deci haideți să vorbim despre cum obțineți un proiect WordPress folosind Git.

Prima considerație este ce nivel din ierarhia folderelor ar trebui să fie rădăcina depozitului dvs. Git. Dacă construiți o temă, atunci ați putea face din folderul temei depozitul dvs. Aceeași logică se aplică dacă construiți un plugin.

De obicei lucrez în teme și pluginuri în același timp, așa că folosesc adesea folderul wp-content ca locație pentru depozitul meu. Când fac asta, mă asigur că ignor folderul de încărcări, astfel încât să nu adaug toate imaginile și fișierele încărcate în depozit. Ele aglomera depozitul și pot încetini Git, deoarece nu este grozav la comprimarea fișierelor de imagine.

Dacă mă ocup de un întreg flux de lucru de implementare, atunci fac din folderul rădăcină WordPress locația principală pentru depozitul meu Git. Apoi mă asigur că adaug wp-content/uploads și wp-config.php la fișierul meu .gitignore . wp-config.php este specific fiecărei instalări WordPress, așa că nu vreau să fie implementat peste nicio altă versiune a fișierului care ar face ca site-ul să nu mai funcționeze.

Puteți vedea o copie a fișierului .gitignore pe care îl folosesc ca punct de plecare pentru fiecare proiect. Se presupune că utilizați wp-content ca rădăcină a depozitului dvs. Git, așa că schimb unele dintre modelele de ignorare dacă sunt la rădăcina WordPress.

Aplicații GUI Git

Deși am acoperit elementele de bază prin linia de comandă pentru Git, nu toată lumea se simte confortabil în linia de comandă, știu că nu eram atunci când am început să folosesc Git. Chiar și acum, ocazional vreau să mă uit la o reprezentare vizuală a ceea ce face Git înainte de a face orice modificări în configurația mea.

Din fericire, există câțiva clienți GUI grozavi pentru Git pe care îi puteți folosi, așa că să evidențiem câțiva.

Desktop Github (Windows/macOS)

Un loc minunat pentru a începe când vă uitați la clienții Git GUI este aplicația Github Desktop.

Multe proiecte open-source folosesc Github ca depozit de cod pentru colaborare și folosesc fluxul Github standard pentru a-și face munca. Clientul Github Desktop este creat pentru a vă ajuta să gestionați acest flux, astfel încât va ușura crearea solicitărilor de extragere.

Dacă nu sunteți sigur ce este o cerere de extragere, verificați Documentația Github privind cererile de extragere

Din păcate pentru utilizatorii de Linux, nu există o aplicație oficială Github Desktop, dar există o furcă a Github Desktop care se va instala pe sistemele Linux.

Turnul Git (Windows/macOS)

GUI-ul Git pe care îl folosesc este Git Tower. Git Tower este disponibil pentru macOS și Windows. Când am început cu Git, mi s-a părut mult mai ușor să rezolv conflictele și să văd ce diferă între fișierele din această interfață grafică.

Copiere de lucru (iOS/iPadOS)

Dacă lucrezi în principal de pe un iPad, așa cum fac mine, atunci ar trebui să te uiți la Working Copy. Working Copy este un client Git cu funcții complete care funcționează cu iOS și iPadOS. Include chiar și integrarea comenzilor rapide, astfel încât să puteți automatiza părți ale fluxului de lucru Git.

Încheierea

Deși am acoperit o mulțime de cunoștințe despre Git astăzi, nu există nicio posibilitate ca o singură postare de blog să fie exhaustivă pe acest subiect. Vă puteți continua învățarea cu documentația de ajutor Nexcess, precum și cu aceste resurse excelente.

  • Documentație Git
  • Cartea Pro Git
  • Lecția Git Laracasts
  • Resursele externe proprii ale Git

Folosind Git pentru a vă gestiona proiectele clienților, vă veți scuti de bătăi de cap, deoarece puteți anula modificările sau puteți renunța la ramuri întregi dacă nu mai doriți munca pe care ați făcut-o. Gata cu Ctrl + Z până când nu crezi că ai revenit suficient de mult, Git va ține evidența tuturor pentru tine.