Sari la conținut
← Git & GitHub pentru developeri
Progres curs 0 / 7 lecții (0%)

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 -> Create

O 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.

Folosim cookie-uri esențiale pentru funcționarea site-ului și, cu acordul tău, cookie-uri de analiză și publicitate. Partenerii noștri, inclusiv Google, pot folosi cookie-uri pentru a afișa reclame relevante. Detalii în Politica de cookie-uri.