Git pentru Web Developers - De la Zero la Productiv
Invata Git de la zero. Comenzi esentiale, workflows si best practices pentru version control in proiecte web.
Andrei Fieraru
Autor
Git e ca o asigurare pentru codul tau - nu stii cat de important e pana cand ai nevoie de el. Am vazut developeri care au pierdut saptamani de munca pentru ca nu foloseau version control.
Ce este Git?
Git este un sistem de version control distribuit. Iti permite sa:
- Salvezi istoricul complet al proiectului
- Lucrezi pe mai multe functionalitati in paralel
- Colaborezi cu alte persoane
- Revii la versiuni anterioare oricand
Instalare si configurare
Instalare
# macOS
brew install git
# Ubuntu/Debian
sudo apt install git
# Windows
# Download de la git-scm.com
Configurare initiala
git config --global user.name "Numele Tau"
git config --global user.email "email@exemplu.ro"
git config --global init.defaultBranch main
Comenzi esentiale
Initializare proiect
# Proiect nou
git init
# Clonare proiect existent
git clone https://github.com/user/repo.git
Workflow de baza
# Vezi status
git status
# Adauga fisiere pentru commit
git add filename.txt
git add . # toate fisierele
# Salveaza modificarile
git commit -m "Descriere modificari"
# Trimite la remote
git push origin main
Vizualizare istoric
# Istoric commits
git log
git log --oneline --graph
# Diferente
git diff
git diff --staged
Branching - Lucru in paralel
De ce branches?
- Izolezi functionalitati noi
- Poti experimenta fara risc
- Colaborare fara conflicte
Comenzi branches
# Creeaza branch nou
git branch feature-name
# Schimba branch
git checkout feature-name
# sau (Git 2.23+)
git switch feature-name
# Creeaza si schimba
git checkout -b feature-name
git switch -c feature-name
# Lista branches
git branch
# Sterge branch
git branch -d feature-name
Merge branches
# Te muti pe branch-ul tinta
git checkout main
# Merge branch-ul
git merge feature-name
Git Workflows populare
1. Feature Branch Workflow
Cel mai comun pentru echipe mici:
main ─────●─────●─────●─────●
\ /
feature ●───●───●
- Creeaza branch pentru fiecare feature
- Lucreaza pe branch
- Merge inapoi in main
2. Gitflow Workflow
Pentru proiecte cu release-uri:
main ─────●─────────────●
| |
develop ──●───●───●───●───●───●
\ /
feature ●───●
Branches:
- main: cod productie
- develop: integrare
- feature/*: functionalitati noi
- release/*: pregatire release
- hotfix/*: fix-uri urgente
3. Trunk-Based Development
Pentru CI/CD rapid:
main ───●───●───●───●───●───●
- Toata lumea lucreaza pe main
- Commits mici, frecvente
- Feature flags pentru functionalitati incomplete
Rezolvare conflicte
Cand apar conflicte?
Cand doi oameni modifica aceleasi linii.
Cum arata un conflict?
<<<<<<< HEAD
codul tau
=======
codul celuilalt
>>>>>>> feature-branch
Rezolvare
- Deschide fisierul
- Alege versiunea corecta (sau combina)
- Sterge marcajele (<<<<, ====, >>>>)
git addsigit commit
.gitignore - Ce sa NU salvezi
Exemplu .gitignore
# Dependencies
node_modules/
vendor/
# Build output
dist/
build/
# Environment
.env
.env.local
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
# Logs
*.log
npm-debug.log*
GitHub/GitLab best practices
Commits
- Mesaje clare: “Add user authentication” nu “fix stuff”
- Commits atomice: o schimbare logica per commit
- Commits frecvente: nu astepta zile
Pull Requests
- Descriere clara a schimbarilor
- Screenshots pentru UI changes
- Link la issue/task
- Request review de la colegi
Branch naming
feature/add-login
bugfix/fix-header-mobile
hotfix/security-patch
refactor/clean-api
Comenzi avansate utile
Stash - Pune deoparte temporar
git stash
# lucreaza la altceva
git stash pop
Revert - Anuleaza un commit
git revert abc123
Reset - Intoarce in timp
# Soft: pastreaza modificarile
git reset --soft HEAD~1
# Hard: sterge tot (ATENTIE!)
git reset --hard HEAD~1
Cherry-pick - Copiaza un commit
git cherry-pick abc123
Unelte GUI recomandate
| Unealta | Platforma | Pret |
|---|---|---|
| GitKraken | Cross-platform | Freemium |
| Sourcetree | Win/Mac | Free |
| GitHub Desktop | Win/Mac | Free |
| VS Code Git | Cross-platform | Free |
Erori frecvente si solutii
”Permission denied"
# Genereaza SSH key
ssh-keygen -t ed25519
# Adauga in GitHub/GitLab
"Merge conflict”
Rezolva manual si commit.
”Detached HEAD"
git checkout main
"Push rejected”
git pull --rebase
git push
FAQ
Git vs GitHub?
Git = software version control. GitHub = platforma hosting pentru repos Git.
De ce nu ZIP-uri?
Git e mai eficient, permite colaborare si pastreaza istoric complet.
Pot folosi Git pentru non-code?
Da! Designers folosesc pentru fisiere text, configurari, documentatie.
Cat de des fac commit?
De fiecare data cand ai o schimbare functionala completa.
Concluzie
Git e o abilitate esentiala pentru orice developer. Incepe cu comenzile de baza si extinde gradual. Practica face perfect.
Vrei training Git pentru echipa ta? Iron Media ofera workshop-uri de version control. Contacteaza-ne pentru detalii.
Andrei Fieraru
Autor & Creator de continut
Pasionat de design, print si web development. Scrie articole pentru a ajuta afacerile sa creasca prin solutii creative si inovatoare.
Ultima actualizare: 6 decembrie 2025