A blokk · Bevezetés, környezet, Git · 7. tananyag
nevjegy_vegleges_final_EZT_ADD_LE.zip —
így néz ki a verziókezelés verziókezelő nélkül. A Git a programozók
időgépe: minden állapot visszakereshető, semmi sem vész el. Az első programjaink
után azonnal megtanuljuk — a Visual Studióból, pár kattintással.
.gitignore —
és miért nincs a repóban a bin/obj (A4!).A verziókezelő (version control system) olyan program, amely a projekted minden elmentett állapotát megőrzi, és bármikor vissza tud térni bármelyikhez. Három dolgot ad, amit semmi más:
A Git a világ szabványos verziókezelője (Linus Torvalds írta 2005-ben a Linux fejlesztéséhez) — ingyenes, és a Visual Studio beépítve tartalmazza a kezelőfelületét.
| Fogalom | Mi ez? | Hasonlat |
|---|---|---|
| repó (repository) | a projekt + a teljes előzménye egy rejtett .git mappában | a projekt „emlékezete” |
| commit | egy elmentett pillanatfelvétel a projekt állapotáról, üzenettel | bejegyzés a hajónaplóba |
| history (előzmények) | a commitok időrendi lánca | maga a hajónapló |
| változások (changes) | amit a következő commitba szánsz | a „mentésre kijelölt” kupac |
A Git pillanatfelvételekben gondolkodik: minden commit a projekt egy teljes, visszaállítható állapota. A commitok láncot alkotnak — ez a history:
A Ctrl+S (mentés) és a commit nem ugyanaz! A mentés a fájlt írja a lemezre. A commit a Git naplójába teszi el az állapotot. Menteni percenként mentesz — commitolni működő állapotonként szokás.
Nevjegy-et az A6-ból).Ezzel három dolog történt:
.git mappa
(ez maga a repó);.gitignore
fájlt — ebben van felsorolva, mit ne figyeljen a Git:
mindenekelőtt a bin és
obj mappát (A4: ami újratermelődik, annak
semmi keresnivalója a verziókezelésben);A napi munka a Git Changes panelen zajlik (View → Git Changes, ha nem látod):
Az üzenet a jövőbeli önmagadnak (és a munkatársaidnak) szól. Szabályok:
Keret hozzáadva a névjegyhez;Javítja a kiírás sorrendjét;javításasdvégleges2Git menü → View Branch History: itt a commitjaid listája. Egy commitra kattintva látod, mely fájlok változtak és hogyan. Ha valamit elrontottál, a Git Changes panelen a fájlra jobb kattintás → Undo Changes visszaállítja az utolsó commit szerinti állapotot.
Az elágazás (branch) a repó párhuzamos fejlesztési vonala: kísérletezhetsz rajta úgy, hogy a fő vonal (alapértelmezett nevén main) biztonságban marad. Ha a kísérlet bevált, a vonalak összefésülhetők (merge).
A Visual Studióban az állapotsor jobb alsó sarkában látod az aktuális ágat — rákattintva válthatsz és újat hozhatsz létre. Nálunk az I. félévben elég a main: az elágazásokat a nagyobb projekteknél (G, J blokk) vesszük elő igazán.
A Git a gépeden dolgozik. A GitHub egy szolgáltatás, amely a repódat a felhőben tárolja: biztonsági mentés, megosztás, közös munka — és a portfóliód: a leendő munkáltatók is GitHub-profilokat nézegetnek.
A Visual Studióból: Git menü → Push (első alkalommal felajánlja a repó létrehozását a GitHub-fiókodban — be kell jelentkezni). A GitHub-fiók ingyenes; az órán közösen hozzuk létre.
Publikus repóba soha ne kerüljön jelszó, kulcs vagy személyes adat! Amit egyszer felpusholtál, azt a történet őrzi — törölni nem elég.
Melyik műveletre illik a leírás?
A Visual Studio gombjai a háttérben Git-parancsokat futtatnak. Nem kell kívülről tudni őket, de jó felismerni — a neten a legtöbb segítség parancsokkal beszél:
| VS-művelet | Parancs | Mit csinál? |
|---|---|---|
| Create Git Repository | git init | repóvá teszi a mappát |
| (Changes lista) | git status | mi módosult az utolsó commit óta |
| Commit All | git add . + git commit -m "üzenet" | kijelöl mindent és commitol |
| View History | git log | a commitok listája |
| (állapotsor, ágváltás) | git branch, git switch | ágak listája, váltás |
| Push | git push | commitok feltöltése a távoli repóba |
| — | git clone <url> | távoli repó letöltése |
| Tünet | Mi történt? | Mit tegyél? |
|---|---|---|
| A repó hatalmas, a feltöltés örökké tart | a bin/obj bekerült a repóba | ellenőrizd a .gitignore-t; ha már bekerült, közösen tisztítjuk |
| „Mindent egy commitba tettem a hét végén” | ritkán commitolsz | commitolj minden működő állapot után — kis commitok, beszédes üzenetek |
| Az üzenet: „javítás3” | semmitmondó üzenet | egy hét múlva te sem fogod tudni, mi volt ez — írd le, MIT változtattál |
| A Git Changes panel üres, pedig módosítottál | nem mentetted a fájlt | Ctrl+Shift+S, és megjelenik |
Nevjegy projektet, és tedd repóvá:
Git → Create Git Repository → Local only → Create..gitignore. Nyisd meg, és keresd meg benne a
bin és obj sorokat
([Bb]in/, [Oo]bj/).Kedvenc tantárgy hozzáadva →
Commit All.Legalább 3 commitod van beszédes üzenettel, láttad a diffet, és az Undo Changes-zel visszaállítottál egy elrontott fájlt.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás
Magyarázd el egy mondatban a különbséget: mentés (Ctrl+S) és commit. Mikor melyiket?
Melyik commit-üzenet jó, melyik nem, és miért? —
javítás ·
Lépcső kirajzolása 5 sorban ·
asdasd ·
Keret szélesítve a hosszú névhez
Miért pont a bin és az obj
van a .gitignore-ban? Mi történne, ha mégis a repóba
kerülnének? (Gondolj az A4-re: mekkora, milyen gyakran változik?)
Hozz létre GitHub-fiókot (ha az órán még nem tetted meg), és pushold fel a
Nevjegy repódat. Ellenőrizd a böngészőben:
ott vannak a commitjaid?
A GitHubon keresd meg a dotnet/runtime repót
(A2-ből ismerős). Nyisd meg a commitlistát: figyeld meg a commit-üzenetek
stílusát. Írj le három mintát, amit érdemes eltanulni tőlük.
Minden kérdésnél egy válasz helyes. A végén pontszámot kapsz.
| Fogalom | Jelentés |
|---|---|
| verziókezelés (version control) | a projekt állapotainak megőrzése és visszakereshetősége |
| Git | a szabványos verziókezelő program — a VS beépítve kezeli |
| repó (repository) | a projekt + teljes előzménye; a rejtett .git mappa tárolja |
| commit | pillanatfelvétel a projekt állapotáról, üzenettel |
| history | a commitok időrendi lánca |
| diff | két állapot különbsége: piros = törölt, zöld = új sorok |
.gitignore | lista arról, amit a Git ne kövessen (bin, obj, ideiglenes fájlok) |
| branch (elágazás) | párhuzamos fejlesztési vonal; az alapértelmezett a main |
| merge (összefésülés) | két ág változásainak egyesítése |
| GitHub | felhőszolgáltatás Git-repók tárolására és megosztására |
| push / pull / clone | feltöltés a távoli repóba / letöltés onnan / távoli repó teljes lemásolása |
.gitignore tartja távol a
generált fájlokat — a bin/obj
soha nem kerül a repóba (A4).