În acest articol veți afla ce este Git și la ce folosește, vă veți crea primul repository pe GitHub și vă veți configura mediul de lucru. Lucrăm intenționat cu Git prin interfața grafică a IDE-ului: e mai ușor de urmărit și mai puțin stresant la început, fără să fie nevoie să țineți minte zeci de comenzi.

Exemplele și capturile de ecran sunt din IDE-urile JetBrains; denumirile și poziția acțiunilor pot diferi în versiunea dumneavoastră. Pentru exerciții, folosiți un repository separat de practică. Într-un proiect de lucru, respectați regulile lui pentru branch-uri, commit-uri și trimiterea modificărilor.

Abordarea asta mai are un rost. În culise, Claude Code face exact aceleași operații Git, doar că prin comenzi în terminal. Când vă propune să faceți un commit, să creați un branch sau să trimiteți modificări, în spate sunt comenzi Git obișnuite. Dacă înțelegeți ce se întâmplă în spatele butoanelor IDE-ului, veți înțelege și ce propune Claude Code și le veți putea verifica și aproba în cunoștință de cauză.

De ce avem nevoie de controlul versiunilor

Când începeți să lucrați la un proiect, pare că cel mai important lucru e ca codul să funcționeze. Dar destul de repede descoperiți că codul se schimbă mai des decât funcționează stabil. Remediați un bug, adăugați o funcționalitate, vă răzgândiți, reveniți la o versiune anterioară, apoi adăugați din nou.

Imaginați-vă că lucrați la propriul proiect. Totul merge bine până când vine momentul experimentelor. Doriți să schimbați ceva, dar vă temeți să stricați versiunea funcțională. Ce faceți? Bineînțeles, copiați proiectul. În scurt timp, pe disc apar asemenea capodopere:

MyProject/
├── main.py
├── main_backup.py
├── main_final.py
├── main_final2.py
├── main_really_final.py
├── main_really1_really_final2.py

Vă sună cunoscut? Acum imaginați-vă că un prieten se alătură proiectului. Și el copiază fișiere, dar în felul lui. Cum vă dați seama care e cea mai recentă versiune funcțională? Cum aflați cine a schimbat ce? Cum reveniți la starea inițială dacă experimentul nu reușește?

Fără un istoric salvat, trebuie să vă descurcați manual printre copiile fișierelor:

  • puteți pierde ușor codul funcțional sau îl puteți încurca;
  • nu există o metodă unică pentru a găsi și restaura o versiune salvată;
  • e greu să lucrați în doi sau în trei;
  • apare haosul și teama de a experimenta.
Ilustrație pentru secțiunea "De ce avem nevoie de controlul versiunilor"

Exact aceste probleme le rezolvă sistemele de control al versiunilor, cum este Git.

Video - bazele Git în terminal

Videoclipul oferă o bază solidă pentru lucrul cu Git în terminal și vă ajută să înțelegeți mecanismele ascunse în spatele butoanelor IDE-ului.

Exemplele din videoclip sunt în Java, dar operațiile de bază Git sunt aceleași în toate limbajele.

Deschideți videoclipul despre bazele Git

Ce este Git - conceptele de bază

Git este un sistem de control al versiunilor folosit pentru a urmări modificările codului în timpul dezvoltării. Vă permite să păstrați versiuni diferite ale fișierelor și să coordonați munca mai multor persoane la un proiect comun.

Un repository (sau "repo") este locul în care se păstrează întregul istoric al proiectului: toate modificările și versiunile fișierelor.

Un commit este o captură salvată a conținutului urmărit din proiect, însoțită de un mesaj, informații despre autor și legături către commit-urile părinte. Fișierele neincluse într-un commit și cele ignorate nu fac parte din această captură. Istoricul vă permite să găsiți și să restaurați o versiune salvată anterior.

Capturi consecutive în istoricABCD
Capturi consecutive în istoric

Fiecare commit este o captură a proiectului care urmează după cea anterioară, formând un istoric succesiv al modificărilor.

Un branch este un nume care indică spre commit-ul curent al unei linii de dezvoltare. În exemple, branch-ul principal se numește main; în repository-ul dumneavoastră poate avea alt nume. Depinde de setări și de modul în care a fost creat repository-ul.

Linia de sus este main, cea de jos - develop. După îmbinare, main indică spre M, care are doi părinți: E și D.ABEMCD
Linia de sus este main, cea de jos - develop. După îmbinare, main indică spre M, care are doi părinți: E și D.

Din branch-ul principal main se desprinde branch-ul develop pentru dezvoltare în paralel. După ce se termină lucrul, modificările din develop se îmbină înapoi în main.

Comenzile Git de bază - ce se întâmplă în culise

Mai jos găsiți o listă cu comenzile de bază pentru lucrul cu Git în terminal. Noi vom lucra prin interfața grafică a IDE-ului, dar e util să știți ce comenzi stau la baza operațiilor: Git le execută în spatele fiecărui buton, iar Claude Code le rulează când lucrează cu repository-ul dumneavoastră. Gândiți-vă la ele ca la ceea ce se întâmplă în culise.

ComandăCe face
git initinițializează un repository Git nou în folderul curent
git clonecopiază un repository dintr-un URL într-un folder nou
git statusarată ce fișiere au fost modificate, pregătite și pe care Git încă nu le urmărește
git addadaugă fișiere în index (staging) pentru următorul commit
git commitînregistrează modificările pregătite ca o nouă captură în istoric
git pushtrimite commit-urile din repository-ul local în cel la distanță
git pullpreia modificările și le combină cu branch-ul curent conform setărilor
git fetchdescarcă modificările de pe server, dar încă nu le integrează în branch-ul dumneavoastră
git branchafișează, creează sau șterge branch-uri
git checkout / git switchswitch schimbă branch-ul; checkout poate și să deschidă un anumit commit și să restaureze fișiere
git mergeîmbină modificările branch-ului indicat în cel curent
git logafișează istoricul commit-urilor
git difffără opțiuni, compară fișierele de lucru cu indexul; modificările pregătite se verifică separat
git restorerestaurează fișierele selectate; dacă nu specificați sursa, fișierele de lucru sunt preluate din index, nu neapărat din ultimul commit
git resetmodifică indexul sau poziția branch-ului curent; efectul depinde de forma comenzii și de mod
git stashpune temporar deoparte modificările neterminate, ca să reveniți la ele mai târziu
git remote -varată la ce repository-uri la distanță este conectat proiectul
git configsetările Git, de exemplu numele și emailul autorului commit-urilor
Ilustrație pentru secțiunea "Comenzile Git de bază - ce se întâmplă în culise"

Nu e nevoie să memorați toată lista. La început, e suficient să știți că acțiunile din IDE și cele ale agentului se bazează pe operații Git, iar o singură acțiune din interfață poate rula mai multe comenzi. De exemplu, acțiunea Commit folosește git commit, iar butonul Push apelează git push.

  • Fișiere de lucru
  • git add → index
  • git commit → istoric
  • git push → server

Diagrama arată trimiterea: pregătiți conținutul cu add, îl înregistrați local prin commit și trimiteți commit-urile cu push. În direcția opusă, pull preia commit-urile de la distanță și le combină cu branch-ul curent conform setărilor.

Cum se leagă de Claude Code

Acesta este mecanismul pe care Claude Code îl folosește în locul dumneavoastră. Când spune că va crea un commit și va trimite modificările, în spate sunt git add, git commit și git push. Vedeți rezultatul în aceeași fereastră IDE și îl puteți verifica.

Patru stări ale codului

Când folosiți controlul versiunilor, codul trece, din punct de vedere logic, prin patru stări:

1. Working Directory (directorul de lucru). Fișierele actuale ale proiectului de pe calculator, pe care le editați chiar acum.

2. Staging Area (zona de staging). Conținutul pregătit pentru următorul commit. În JetBrains puteți lucra cu liste de modificări sau puteți activa un mod staging separat. Bifele din fereastra Commit obișnuită selectează conținutul pentru commit, dar nu înseamnă că acesta se află deja în indexul Git.

3. Local Repository (repository local). Copia personală a istoricului codului de pe calculatorul dumneavoastră. Aici puteți crea commit-uri, branch-uri și merge-uri chiar și fără internet.

4. Remote Repository (repository la distanță). Un spațiu central de stocare a codului pe servicii precum GitHub, GitLab sau Bitbucket. Păstrează codul în siguranță și stă la baza colaborării în echipă.

Cum se leagă de Claude Code

Când Claude Code vă cere să începeți urmărirea unui fișier nou, îl mută din directorul de lucru în staging - aceasta este comanda git add. Astfel, se pregătește conținutul fișierului exact așa cum era în momentul adăugării; modificările ulterioare trebuie pregătite din nou. Dacă fișierul nu trebuie adăugat (de exemplu, e un fișier temporar inutil), puteți refuza.

Git și GitHub - care e diferența

Este important să deosebiți clar cele două noțiuni. Git este un program care rulează local pe calculatorul dumneavoastră (chiar și fără internet) și urmărește versiunile fișierelor. GitHub este un serviciu cloud (un site) unde sunt păstrate copii la distanță ale repository-urilor Git.

GitHub vă permite să creați repository-uri, să urmăriți modificări și să lucrați la cod împreună cu alte persoane. Pentru un dezvoltator de azi, profilul GitHub e o parte importantă a portofoliului, pe care o puteți arăta unui angajator.

Crearea primului repository pe GitHub

Crearea unui repository nou

Pasul 1. Accesați https://github.com și creați-vă un cont.

Pasul 2. Apăsați butonul New repository pentru a crea un repository nou.

Butonul New repository

Pasul 3. Setați opțiunile repository-ului:

  1. numele repository-ului - alegeți un nume sugestiv;
  2. Public sau Private - alegeți cu grijă vizibilitatea. Public este accesibil tuturor; Private limitează accesul. Pentru un exercițiu personal pe care nu intenționați să-l publicați, puteți alege Private.
  3. Add a README file - pentru un proiect nou și gol e util să adăugați un README. Dacă urmează să trimiteți un istoric local existent, creați un repository la distanță gol, fără README, ca să nu ajungeți la două istorii inițiale independente.
  4. Add .gitignore - alegeți un șablon potrivit tehnologiei proiectului. Lista derulantă include șabloane pentru limbaje populare. E important: procesul de build și managerii de pachete creează multe fișiere temporare și cache-uri care nu ar trebui să aglomereze repository-ul, iar șablonul îl ajută pe Git să le ignore;
  5. Choose a license - puteți sări peste acest pas;
  6. apăsați Create repository.
Ilustrație pentru secțiunea "Crearea primului repository pe GitHub"

Pasul 4. Gata, primul repository la distanță a fost creat.

Repository-ul creat pe GitHub

Instalarea și configurarea Git

În continuare este prezentată interfața IntelliJ IDEA. Alte IDE-uri JetBrains oferă acțiuni similare, dar poziția butoanelor și denumirile opțiunilor depind de versiune. Orientați-vă după numele acțiunii; o puteți găsi prin căutarea de acțiuni din IDE.

Pentru a lucra cu Git, trebuie mai întâi să-l instalați. Dacă folosiți un IDE JetBrains, probabil vă va propune instalarea Git dacă nu îl găsește în sistem - cel mai simplu este să acceptați.

Închideți proiectul curent folosind File | Close Project. Pe ecranul de pornire (Welcome Screen), apăsați Clone Repository (în unele versiuni, butonul se numește Get from VCS).

Fereastra de pornire IntelliJ IDEA

Dacă preferați să instalați Git manual, descărcați-l de pe site-ul oficial: https://git-scm.com/downloads.

Un detaliu important

Pentru primul commit, Git are nevoie de numele autorului și de email. Acestea identifică autorul commit-ului, nu sunt date de autentificare în cont. Pentru a lega commit-urile de GitHub, folosiți o adresă confirmată din setările contului sau adresa noreply oferită de GitHub dacă nu doriți să vă publicați emailul personal.

GitHub asociază commit-urile cu profilul pe baza adresei de email. Potrivirea adresei, de una singură, nu garantează afișarea commit-ului în graficul de activitate: există și alte condiții.

Ce să instalați pentru ca Claude Code să lucreze direct cu Git și GitHub

Pentru commit-uri și branch-uri locale, e suficient să aveți Git instalat: nu trebuie să vă autentificați în GitHub. Pentru operațiile cu un repository la distanță, configurați accesul la acesta. GitHub CLI (gh) este un instrument suplimentar pentru PR-uri și alte funcții GitHub, nu o componentă obligatorie a Git.

1. Git. Este necesar pentru lucrul cu istoricul local. Instalați-l prin IDE sau de pe site-ul oficial Git.

2. GitHub CLI (gh) este utilitarul oficial GitHub pentru linia de comandă. La ce folosește? Prin el, Claude Code poate crea pull request-uri, poate citi issues și vedea starea verificărilor (checks) direct din terminal, fără să treacă în browser. Modul de instalare depinde de sistemul de operare.

Instrucțiunile pentru sistemul dumneavoastră de operare sunt pe pagina oficială GitHub CLI. Instalați utilitarul și verificați dacă este disponibil cu comanda gh --version.

Dacă ați ales GitHub CLI, porniți configurarea accesului și urmați întrebările afișate. Pentru GitHub.com puteți alege HTTPS și autentificarea prin browser:

# autentificare în contul GitHub din terminal
gh auth login

Claude Code poate folosi git pentru istoric și gh pentru funcțiile GitHub. Instalați gh și rulați gh auth login doar dacă alegeți această metodă de lucru cu GitHub. Crearea PR-urilor și trimiterea commit-urilor se fac la cererea dumneavoastră, după ce verificați ce va fi trimis.

main vs master

În repository-uri veți întâlni numele main și master. GitHub propune de obicei main, iar la inițializarea locală Git ține cont de versiunea sa și de setarea init.defaultBranch. Verificați numele real al branch-ului din proiect.

Ambele nume desemnează un branch obișnuit. Adaptați comenzile din exemple la numele reale ale branch-urilor din repository-ul dumneavoastră.

Cum funcționează împreună cu Claude Code

Acum că știți conceptele de bază din Git, e mai ușor să urmăriți acțiunile lui Claude Code. Iată ce face cu această tehnologie în locul dumneavoastră și la ce merită să fiți atenți:

  • rulează pentru dumneavoastră git add, git commit, git push și alte comenzi - aceleași comenzi pe care le folosesc butoanele IDE-ului;
  • propune să adauge un fișier în lista celor urmărite (git add) - dumneavoastră decideți dacă fișierul trebuie să apară în istoric;
  • propune un commit cu mesajul deja pregătit - citiți ce va înregistra, apoi îl acceptați sau îl modificați;
  • prin GitHub CLI poate crea și comenta un pull request (PR - o propunere de îmbinare a unui branch în cel principal) și poate urmări starea verificărilor.
Cum se leagă de Claude Code

Înainte să aprobați, verificați ce fișiere și modificări vor intra în commit. Claude Code le afișează la fel ca IDE-ul, sub forma unui diff. Aici rămâne controlul la dumneavoastră: știți întotdeauna ce anume ajunge în istoricul proiectului și pe server.

Articolul următor: Lucrul de zi cu zi cu Git