Vezérlőpult
A7. Verziókezelés: Git alapok · Bevezetés, környezet, Git

A blokk · Bevezetés, környezet, Git · 7. tananyag

Verziókezelés: Git alapok

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.

2 tanóraGyakorlatközpontúAz első saját repód

Tanulási célok

1Mi a verziókezelés?

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.

2Alapfogalmak: repó, commit, history

FogalomMi ez?Hasonlat
repó (repository)a projekt + a teljes előzménye egy rejtett .git mappábana projekt „emlékezete”
commitegy elmentett pillanatfelvétel a projekt állapotáról, üzenettelbejegyzés a hajónaplóba
history (előzmények)a commitok időrendi láncamaga a hajónapló
változások (changes)amit a következő commitba szánsza „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:

„Névjegy kiírása” „Keret igazítva” „Megjegyzés a fejlécbe” „Lépcső-feladat kész” ← a mostani állapot idő 1. commit
A history: minden pötty egy commit — egy teljes, visszaállítható pillanatfelvétel.
⚠️ FONTOS

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.

3Git a Visual Studióból

Repó létrehozása

  1. Nyisd meg a projektet (pl. a Nevjegy-et az A6-ból).
  2. Git menü → Create Git Repository…
  3. A párbeszédablakban válaszd a Local only lehetőséget (a GitHubot később kötjük be), majd Create.

Ezzel három dolog történt:

A Git Changes panel

A napi munka a Git Changes panelen zajlik (View → Git Changes, ha nem látod):

  1. Módosítasz egy fájlt → a panelen megjelenik a Changes listában.
  2. A fájlra duplán kattintva diff nézetet kapsz: pirossal a törölt, zölddel az új sorok — pontosan látod, mit változtattál.
  3. Az üzenetmezőbe írod, mit csináltálCommit All gomb.

Jó commit-üzenet

Az üzenet a jövőbeli önmagadnak (és a munkatársaidnak) szól. Szabályok:

History — az időgép használata

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

4Elágazások (branch) — röviden

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

main — mindig működő állapot „kiserlet” ág — nyugodtan rontható merge
Az ágon kísérletezel; ha bevált, a merge visszaviszi a main-be.

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.

5GitHub — a repó a felhőben

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.

⛔ VESZÉLY

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.

Commit, push, branch vagy clone?

Melyik műveletre illik a leírás?

1 / 8Pontszám: 0

6Mi van a gombok mögött? — parancssori megfelelők

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űveletParancsMit csinál?
Create Git Repositorygit initrepóvá teszi a mappát
(Changes lista)git statusmi módosult az utolsó commit óta
Commit Allgit add . + git commit -m "üzenet"kijelöl mindent és commitol
View Historygit loga commitok listája
(állapotsor, ágváltás)git branch, git switchágak listája, váltás
Pushgit pushcommitok feltöltése a távoli repóba
git clone <url>távoli repó letöltése

7Gyakori hibák

TünetMi történt?Mit tegyél?
A repó hatalmas, a feltöltés örökké tarta bin/obj bekerült a repóbaellenő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 commitolszcommitolj minden működő állapot után — kis commitok, beszédes üzenetek
Az üzenet: „javítás3”semmitmondó üzenetegy 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álnem mentetted a fájltCtrl+Shift+S, és megjelenik

8Gyakorlat — az első saját repód

  1. Nyisd meg az A6-os Nevjegy projektet, és tedd repóvá: Git → Create Git Repository → Local only → Create.
  2. Nézd meg a Solution Explorerben (Show All Files): megjelent a .gitignore. Nyisd meg, és keresd meg benne a bin és obj sorokat ([Bb]in/, [Oo]bj/).
  3. Módosítsd a névjegyet (pl. új sor: kedvenc tantárgy), mentsd, és a Git Changes panelen kattints duplán a fájlra — nézd meg a diffet: zöld = új sor.
  4. Írj üzenetet: Kedvenc tantárgy hozzáadvaCommit All.
  5. Módosíts megint (írj el valamit szándékosan), mentsd — majd a Git Changes panelen jobb kattintás a fájlra → Undo Changes. A hiba eltűnt: az időgép működik!
  6. Csinálj még két értelmes commitot, majd Git → View Branch History — ott a láncod.
✅ ELLENŐRZŐ PONT

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.

9Feladatok

Gyakorló feladatok

⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás

A7.1

Magyarázd el egy mondatban a különbséget: mentés (Ctrl+S) és commit. Mikor melyiket?

A7.2

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

A7.3⭐⭐

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?)

A7.4⭐⭐

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?

A7.5⭐⭐⭐

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.

10Önellenőrző kvíz

Ellenőrizd magad!

Minden kérdésnél egy válasz helyes. A végén pontszámot kapsz.

11Fogalomtár

FogalomJelentés
verziókezelés (version control)a projekt állapotainak megőrzése és visszakereshetősége
Gita 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
commitpillanatfelvétel a projekt állapotáról, üzenettel
historya commitok időrendi lánca
diffkét állapot különbsége: piros = törölt, zöld = új sorok
.gitignorelista 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
GitHubfelhőszolgáltatás Git-repók tárolására és megosztására
push / pull / clonefeltöltés a távoli repóba / letöltés onnan / távoli repó teljes lemásolása

12Összegzés

  1. A Git időgép + napló: minden commit egy visszaállítható pillanatfelvétel, a history pedig megmondja, ki mikor mit változtatott.
  2. Mentés ≠ commit: menteni percenként, commitolni működő állapotonként — rövid, konkrét üzenettel.
  3. A Visual Studióban minden kattintásra megy: Create Git RepositoryGit Changes panel → Commit AllView History.
  4. A .gitignore tartja távol a generált fájlokat — a bin/obj soha nem kerül a repóba (A4).
  5. A branch kísérletezéshez ad biztonságot; a GitHub felhőmentés, megosztás és portfólió — push-sal kerül fel a munkád.
  6. Publikus repóba jelszó, kulcs, személyes adat soha.