Pull requests pe GitHub
Pull Request-ul (PR) e mecanismul GitHub prin care propui ca schimbările dintr-un branch să fie îmbinate în altul. E locul unde se face code review, rulează testele automate și se discută codul înainte să ajungă pe main.
Fluxul complet
git switch -c fix/eroare-login
# lucrezi, comiți
git push -u origin fix/eroare-login
# pe GitHub: "Compare & pull request" -> completezi titlu + descriere -> CreateO descriere bună de PR
- Ce problemă rezolvă (și un link la issue dacă există).
- Ce ai schimbat, pe scurt.
- Cum se testează (pași concreți).
- Screenshot-uri pentru schimbări vizuale.
- Ce a rămas în afara scopului acestui PR.
Code review
Un coleg (sau tu, pe cont propriu, cu ochi proaspăt a doua zi) citește diff-ul și lasă comentarii. Răspunzi, faci modificări (commit-uri noi pe același branch — se adaugă automat la PR), aprobare, apoi merge.
Opțiuni de merge pe GitHub
- „Create a merge commit": păstrează toate commit-urile + un commit de merge.
- „Squash and merge": combină tot PR-ul într-un singur commit pe main (istorie curată).
- „Rebase and merge": pune commit-urile liniar, fără commit de merge.
- Pentru majoritatea echipelor: „Squash and merge".
Protejarea lui main
În Settings → Branches, poți cere: PR obligatoriu (fără push direct pe main), cel puțin o aprobare, testele să treacă. Așa main rămâne mereu verde.
Șablon de PR
## Ce rezolvă Eroarea 500 la login când emailul are majuscule (#142). ## Schimbări - Normalizez emailul la lowercase înainte de căutare - Adaug un test pentru cazul cu majuscule ## Testare 1. Înregistrează un cont cu "Test@exemplu.ro" 2. Încearcă login cu "test@exemplu.ro" -> acum funcționează
Exercițiu
Creează un branch, fă o schimbare mică, împinge-l și deschide un PR cu o descriere completă (ce, de ce, cum se testează). Dacă poți, cere unui coleg un review; altfel, revino a doua zi și fă-ți singur review pe diff.
Greșeli frecvente
- PR uriaș cu 40 de fișiere — imposibil de revizuit serios.
- Descriere goală sau „fixes stuff".
- Împingi direct pe main, ocolind PR-ul și review-ul.
- Ignori comentariile de review sau te superi pe ele.
De reținut
- PR = propunere de îmbinare + loc de review și CI.
- Descriere: ce, de ce, cum se testează.
- Comentariile de review → commit-uri noi pe același branch.
- „Squash and merge" pentru istorie curată; protejează main.
Pe scurt
PR-ul e poarta către main: cod mic, descriere clară, review, teste verzi, apoi merge. Așa codul rămâne sănătos.