5. témakör · Csapatmunka GitHubon · 21. fejezet
A pull request igazi értéke az átnézés: valaki más is elolvassa a változást, mielőtt a közös ágra kerül. Ebben a fejezetben megtanulod, hogyan kérj és hogyan adj jó review-t a GitHubon: soros megjegyzés, javasolt módosítás, jóváhagyás, változtatáskérés. És azt is, hogyan írj olyan megjegyzést, aminek a társad örül, nem pedig megsértődik rajta.
A review nem vizsga és nem ítélet. A cél a közös munka minősége: a bíráló segít, a szerző pedig nem védekezik, hanem örül, hogy más is ránézett. A jó csapatban mindenki kap megjegyzést, a legtapasztaltabb fejlesztő is.
@toth-peter említés is értesít, de az nem hivatalos review-kérés..github/CODEOWNERS fájllal a GitHub magától kér bírálót a fájlok alapján:# .github/CODEOWNERS — minden sor: minta, majd a felelős(ök)
*.css @szabo-lili
/docs/ @toth-peter
* @anna-kovacs
| A PR-listában | Jelentése |
|---|---|
| Review required | még senki nem hagyta jóvá (és a szabály szerint kell) |
| Approved | legalább egy bíráló jóváhagyta |
| Changes requested | egy bíráló változtatást kért, és ez még áll |
Egy webes felületű változást (HTML, CSS, JavaScript) érdemes ki is próbálni. Hozd le a PR ágát a gépedre:
PS> git fetch PS> git switch feature/kapcsolat branch 'feature/kapcsolat' set up to track 'origin/feature/kapcsolat'. Switched to a new branch 'feature/kapcsolat' PS> start kapcsolat.html # megnyitás a böngészőben
A GitHub Desktopban ugyanez: Current branch → Pull requests fül → kattints a PR-ra. Ha a szerző később javít, a gépeden git pull hozza le.
Ha pontosan tudod, mi lenne a jó sor, ne csak írd le, hanem javasold. A megjegyzés szerkesztőjében a ± gomb (Add a suggestion) beszúr egy különleges kódblokkot a sor jelenlegi tartalmával; ezt írod át:
A címben elírás van. ```suggestion <h1>Kapcsolat</h1> ```
Co-authored-by: sor: a javaslat szerzője társszerzőként szerepel.git push. A PR frissül, a régi sorokra írt megjegyzések Outdated jelzést kapnak.Ha a védett ág szabályában be van kapcsolva a Dismiss stale pull request approvals when new commits are pushed, egy jóváhagyás után feltöltött új commit érvényteleníti a korábbi Approve-ot: újra át kell nézni. Így nem lehet egy jóváhagyott PR-ba utólag „becsempészni” valamit.
Átnézés alatt inkább új commitokat tegyél fel, ne amend + force push-t: így a bíráló látja, mi változott az előző átnézés óta. A „javítás” commitok sokasága miatt ne aggódj: a merge-nél a Squash and merge egyetlen committá gyúrja őket (20. fejezet).
console.log), kikommentezett kód, node_modules, .env.Ne érd be egy Request changes-szel: a titok már feltöltődött, a Git története megőrzi, és egy nyilvános repóban percek alatt megtalálják. Szólj a szerzőnek,
hogy a jelszót, kulcsot azonnal cserélje le (érvénytelenítse), és csak utána javítsa a kódot (a titok helye: környezeti változó, .env a
.gitignore-ban, 9. fejezet).
A jó megjegyzés konkrét (hol, mi a gond), indokolt (miért), segítő (javasol megoldást) és kedves (a kódról szól, nem a szerzőről). A dicséret is megjegyzés: írd le, ha valami tetszik!
| Helyett… | …inkább |
|---|---|
| „Ez rossz.” | „A 12. sorban a link index.htm-re mutat, de a fájl index.html, ezért 404-et kapunk.” |
| „Miért csináltad így??” | „Kérdés: miért lett külön fájlban a lábléc? Ha minden oldalon ugyanaz, esetleg közös részként is betölthetnénk.” |
| „Nem tetszik a szín.” | „Javaslat (nem blokkoló): a gomb színe lehetne a --accent változó, így egységes a többi gombbal.” |
| „Te mindig elírod.” | „Apróság: elírás a címben (Kapcsolt → Kapcsolat), javaslatot tettem.” |
| — | „Ügyes, ez a táblázat sokkal olvashatóbb, mint a régi lista! 👍” |
Sok csapat előtaggal jelzi a megjegyzés súlyát:
| Előtag | Jelentése |
|---|---|
nit: / apróság: | kicsiség (pl. szóköz, elírás), nem akadálya a merge-nek |
kérdés: | nem értem, magyarázd el (lehet, hogy minden rendben van) |
javaslat: | ötlet, a szerző dönt róla |
blokkoló: | ezt javítani kell a merge előtt |
Döntsd el a review-megjegyzésről, hogy jó-e, vagy mi a baj vele.
Lili PR-t nyitott: feat: órarend oldal. Te vagy a bíráló. A változásban négy hiba bújik meg. Kattints azokra a sorokra, amelyekhez megjegyzést írnál, majd ellenőrizd, és döntsd el, milyen review-t küldesz!
Milyen döntéssel küldöd be a review-t?
Péter pull requestet nyitott az osztalyoldal repóban (feat: kapcsolat oldal), és tőled kért átnézést. Nézd át a GitHubon, próbáld ki a gépeden,
javasolj, dönts — és ha minden rendben, olvaszd be.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás
Párban: nyissatok egy-egy PR-t, és kérjétek meg egymást bírálónak. Mindketten írjatok legalább egy soros megjegyzést és egy dicséretet, majd hagyjátok jóvá a másik PR-ját.
A társad PR-jában javasolj egy javítást suggestion blokkal. A szerző fogadja el a Commit suggestion gombbal. Keressétek meg a commitban a Co-authored-by sort.
Írd át a Hangnem-besoroló „túl általános” és „bántó” megjegyzéseit jó megjegyzéssé (konkrét, indokolt, segítő, kedves).
Egy társ PR-jának ágát hozd le a gépedre (git fetch, git switch …), próbáld ki, és a tapasztalatodat írd le a review összegzésében.
Használd a Start a review módot: gyűjts össze legalább három megjegyzést, és egyetlen review-ként küldd be Request changes döntéssel. A szerző javítson, válaszoljon, oldja fel a szálakat, és kérjen újra átnézést; te pedig hagyd jóvá.
Készíts .github/CODEOWNERS fájlt, amely a *.css fájlokhoz automatikusan egy társadat kéri bírálónak. Próbáld ki egy CSS-t módosító PR-ral.
Írjatok a csapatnak review-szabályzatot (mit nézünk, hány jóváhagyás kell, milyen előtagokat használunk, mennyi időn belül válaszolunk), és tegyétek a repóba
CONTRIBUTING.md néven.
Az egyválasztós kérdéseknél kattints a válaszra. A többválasztósaknál jelöld be az összes helyeset, majd nyomd meg az Ellenőrzés gombot.
| Fogalom | Jelentés |
|---|---|
| code review (kódáttekintés) | a változás átnézése egy másik fejlesztő által, mielőtt a közös ágra kerül |
| reviewer (bíráló) | akitől átnézést kértek, vagy aki átnézte a PR-t |
| soros megjegyzés | a Files changed fülön egy vagy több sorhoz írt megjegyzés |
| Start a review / Pending | a megjegyzések gyűjtése; beküldésig csak a bíráló látja őket |
| suggestion (javasolt módosítás) | ```suggestion blokk, amelyet a szerző egy kattintással commitolhat |
| Comment / Approve / Request changes | a review három döntése: visszajelzés / jóváhagyás / változtatáskérés |
| Resolve conversation | egy megjegyzésszál megoldottként való lezárása |
| Re-request review | újabb átnézés kérése a javítások után |
| stale approval | elavult jóváhagyás: új commit után (ha a szabály kéri) már nem számít |
| CODEOWNERS | fájl, amely megadja, mely fájlokhoz ki a felelős bíráló |
| nit / LGTM | apróság, nem blokkoló megjegyzés / „looks good to me”, jóváhagyó rövidítés |
```suggestion: a szerző egy kattintással elfogadja, te társszerző leszel.A következő fejezetben olyan repóhoz járulsz hozzá, amelyhez nincs írási jogod: jön a fork.