Capitol gratuit

Concepte fundamentale

Un repository este un director care contine toate fisierele proiectului impreuna cu istoricul complet al modificarilor. In Git, repository-ul include un fo...

Repository (Repo)

Un repository este un director care contine toate fisierele proiectului impreuna cu istoricul complet al modificarilor. In Git, repository-ul include un folder ascuns .git/ care stocheaza toata informatia de versionare.

Repository local
Pe calculatorul dvs. Contine working directory, staging area si istoricul complet.
Repository remote
Pe un server (GitHub, GitLab). Permite colaborarea si functioneaza ca backup.

Cele trei zone ale Git

Git gestioneaza fisierele prin trei zone principale:

Arhitectura Git pe trei niveluri

  1. Working Directory - directorul unde editati fisierele efectiv
  2. Staging Area (Index) - zona de pregatire unde selectati ce modificari vor fi incluse in urmatorul commit
  3. Repository (.git) - baza de date cu toate commit-urile si istoricul proiectului
Working Directory    Staging Area    Repository (.git)
|                    |                |
|--- git add --->    |                |
|                    |--- git commit ->|
|                    |                |
|<-------- git checkout -------------|
|                    |                |

Commit

Un commit este un "instantaneu" (snapshot) al proiectului la un moment dat. Fiecare commit contine:

  • Hash SHA-1 - identificator unic de 40 de caractere (ex: a1b2c3d4...)
  • Autor - cine a facut modificarea
  • Data - cand a fost facuta
  • Mesaj - descrierea modificarilor
  • Pointer catre parinte - commit-ul anterior (pentru a forma istoricul)
  • Snapshot - starea fisierelor la momentul commit-ului
# Structura interna a unui commit
commit a1b2c3d4e5f6...
Author: Dorel Tanase <contact@goai.ro>
Date:   Mon Mar 9 10:30:00 2026 +0200

Adauga pagina de contact cu formular

- Creaza formularul HTML
- Adauga validare JavaScript
- Stilizare CSS responsive

Branch

Un branch (ramura) este un pointer mobil catre un commit specific. Branch-urile permit lucrul simultan pe mai multe functionalitati fara a afecta codul principal.

        A---B---C  (feature-login)
/
D---E---F---G  (main)
\
H---I  (fix-bug-123)
  • main (fostul master) - branch-ul principal, codul stabil de productie
  • feature branches - ramuri pentru functionalitati noi
  • fix branches - ramuri pentru corectarea bug-urilor

Starea fisierelor in Git

Fiecare fisier din working directory poate fi intr-una din urmatoarele stari:

Stare Descriere Zona
Untracked Fisier nou, necunoscut de Git Working Directory
Unmodified Fisier urmarit, fara modificari Working Directory
Modified Fisier modificat, dar ne-staged Working Directory
Staged Fisier pregatit pentru commit Staging Area
Committed Fisier salvat in repository Repository

Fisierul .gitignore

Fisierul .gitignore specifica ce fisiere sau directoare trebuie ignorate de Git. Se plaseaza in radacina repository-ului.

# Dependinte
node_modules/
vendor/
__pycache__/

# Fisiere de configurare locala
.env
.env.local
*.log

# Fisiere de build
dist/
build/
*.min.js
*.min.css

# Fisiere IDE
.vscode/
.idea/
*.swp
*.swo

# Fisiere OS
.DS_Store
Thumbs.db
desktop.ini
Sfat: GitHub ofera template-uri .gitignore pentru diverse limbaje si framework-uri la github.com/github/gitignore.

Continuați cu restul cursului

Acesta este capitolul 3 din cele 14 ale cursului, cu 7 lecții din 83. Cumpărați cursul și parcurgeți tot conținutul în cont, cu progres salvat, test final și certificat.

Cumpărați cursul la 70 €