Vezérlőpult
6. A három terület: add és commit · Helyi munka: az első commitok

2. témakör · Helyi munka: az első commitok · 6. fejezet

A három terület: add és commit

A Git legfontosabb fejezete. Megismered a munkakönyvtár, az előkészítési terület és a repository kapcsolatát, a fájlok állapotait, és elkészíted az első commitjaidat git add és git commit paranccsal, majd a GitHub Desktopban is.

CLI + DesktopGit-szimulátor élő ábrávalÁllapot-besoroló15 kvízkérdés7 feladat

Tanulási célok

1A három terület

A Gitben egy változás három helyen lehet. A munka mindig ugyanabba az irányba halad:

Munkakönyvtár Előkészítési terület Repository working directory staging area · index .git — a commitok itt szerkesztesz a következő commit „összekészítve” a rögzített történet 📝📦🗄️ git add git commit restore --staged restore
Előre: git add → git commit. Visszafelé (szaggatott): git restore --staged kiveszi az előkészítésből, git restore eldobja a munkakönyvtár változását.
TerületMi van benne?Hová kerül tovább?
Munkakönyvtár
working directory
A fájlok, ahogy most a lemezen vannak. Itt szerkesztesz, hozol létre és törölsz.git add → előkészítés
Előkészítési terület
staging area, index
Azoknak a fájloknak az állapota, amelyek a következő commitba kerülnek.git commit → repository
Repository
a .git mappa
A rögzített commitok, vagyis a projekt teljes története.(a 18. fejezetben: git push → GitHub)
💡 HASONLAT: CSOMAGFELADÁS

A munkakönyvtár a szobád: mindenféle holmi van szanaszét. Az előkészítési terület egy nyitott doboz: ebbe teszed (git add) azt, amit el akarsz küldeni, és bármit ki is vehetsz belőle. A commit a doboz lezárása és felcímkézése (az üzenet). A lezárt dobozt már nem módosítod, és bármikor elővehető a raktárból (a repository-ból).

ℹ️ MIÉRT JÓ, HOGY VAN KÖZTES LÉPÉS?

Mert te döntöd el, mi kerüljön egy commitba. Ha egyszerre javítottál egy hibát és kezdtél el egy új funkciót, a kettőt külön commitba teheted: előbb csak a hibajavítás fájljait készíted elő és commitolod, aztán a többit. Így a történet áttekinthető marad (7. fejezet).

2A fájlok állapotai

A Git minden fájlról nyilvántartja, melyik állapotban van. Először is: követi-e (tracked) egyáltalán?

KÖVETETLEN KÖVETETT (TRACKED) Untracked követetlen Unmodified változatlan Modified módosított Staged előkészített git add (új fájl felvétele) szerkesztés git add git commit
Egy fájl életciklusa. Az új fájl untracked, a git add teszi staged állapotúvá. A commit után unmodified, szerkesztéskor modified lesz, majd újra git add és git commit következik.
ÁllapotJelentésA git status-ban
untracked (követetlen)A fájl ott van a mappában, de a Git még sosem vett róla pillanatképet.Untracked files (piros)
unmodified (változatlan)Követett fájl, amely azóta nem változott, hogy utoljára commitoltad.nem jelenik meg
modified (módosított)Követett fájl, amely megváltozott, de a változás még nincs előkészítve. (A törölt követett fájl is ide tartozik: deleted.)Changes not staged for commit (piros)
staged (előkészített, added)A fájl mostani állapota bekerül a következő commitba.Changes to be committed (zöld)

Melyik állapotban van a fájl?

Döntsd el a leírás vagy a git status kimenete alapján!

1 / 10Pontszám: 0
…

3A git status olvasása

A git status a legtöbbet használt parancs. Mindig megmondja, melyik fájl melyik területen van és milyen állapotban. Minden más parancs előtt és után érdemes lefuttatni. Egy tipikus kimenet, mindhárom csoporttal:

PS C:\Users\anna\projektek\weboldal> git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   index.html
	new file:   kapcsolat.html

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   style.css

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	todo.txt
  1. Changes to be committed (zöld): előkészítve. Ezek kerülnek a következő commitba.
  2. Changes not staged for commit (piros): követett fájlok, amelyek módosultak (vagy törlődtek), de a változás még nincs előkészítve.
  3. Untracked files (piros): követetlen fájlok, amelyekről a Git még nem vett pillanatképet.

A zárójeles sorok tippek: a Git mindig leírja, melyik paranccsal léphetsz tovább vagy vissza.

Rövid forma: git status -s

Két betűs kód minden fájl előtt: az első az előkészítési terület, a második a munkakönyvtár állapota.

PS> git status -s
M  index.html
A  kapcsolat.html
 M style.css
?? todo.txt
KódJelentés
??untracked: követetlen fájl
A added: új fájl, előkészítve
M módosítás, előkészítve
 Mmódosítás, nincs előkészítve
MMelőkészítve, de azóta újra módosult (lásd a 4. szakaszt)
D  /  Dtörlés, előkészítve / nincs előkészítve

4Előkészítés: git add

A git add a fájl jelenlegi tartalmát az előkészítési területre teszi. Ez két helyzetben kell: új fájl első felvételéhez, és egy már követett fájl módosításának előkészítéséhez.

ParancsMit készít elő?
git add index.htmlegyetlen fájlt
git add index.html style.csstöbb fájlt (szóközzel elválasztva)
git add kepekegy mappa összes változását
git add .az aktuális mappa és almappái összes változását (új, módosított, törölt)
git add -Aa teljes repó összes változását, bárhol állsz

Sikeres futás után a git add semmit nem ír ki. Az eredményt a git status mutatja meg.

⚠️ AZ ADD A PILLANATNYI TARTALMAT RAKJA A DOBOZBA

Ha a git add után tovább szerkeszted a fájlt, a commitba a korábbi, az add pillanatában érvényes változat kerül. A fájl ilyenkor egyszerre két csoportban is megjelenik:

PS> git add index.html
PS> "<p>Még egy sor</p>" | Add-Content index.html
PS> git status -s
MM index.html

Megoldás: add ki újra a git add index.html parancsot, ha a friss változatot is commitolni szeretnéd.

💡 GIT ADD . — ÓVATOSAN

A git add . kényelmes, de mindent előkészít, a véletlenül ott felejtett fájlokat is (jegyzetek, jelszavak, 200 MB-os videó). Előtte mindig nézd meg a git status-t! Amit sosem szeretnél commitolni, azt a .gitignore fájlba írd (9. fejezet).

5Rögzítés: git commit

A git commit az előkészítési terület tartalmából új commitot készít: rögzíti az összeállított változásokat a repóban. A -m kapcsolóval adod meg az üzenetet:

PS C:\Users\anna\projektek\weboldal> git commit -m "Első változat: kezdőlap és stílus"
[main (root-commit) 3b18e51] Első változat: kezdőlap és stílus
 2 files changed, 14 insertions(+)
 create mode 100644 index.html
 create mode 100644 style.css
RészJelentés
mainaz ág, amelyre a commit került
(root-commit)ez a repó legelső commitja, nincs szülője (csak egyszer látod)
3b18e51az új commit rövid hash-e (egyedi azonosító)
2 files changed, 14 insertions(+)hány fájl változott, hány sor került be (+) vagy ki (−)
create mode 100644új fájl került a repóba (a 100644 a „közönséges fájl” jelölése)

Ha lemarad a -m

A git commit -m nélkül megnyitja a beállított szerkesztőt (a 2. fejezetben a VS Code-ot állítottuk be). Írd az üzenetet az első sorba, mentsd, és zárd be a fület: a Git csak ezután folytatja. Ha üresen hagyod, a commit elmarad: Aborting commit due to empty commit message.

Rövidítés: git commit -am

Az -a kapcsoló a commit előtt automatikusan előkészíti a már követett fájlok módosításait és törléseit:

PS> git commit -am "Menü színének javítása"
⚠️ AZ -a AZ ÚJ FÁJLOKAT NEM VESZI FEL

Az -am csak a követett fájlokra hat. Az untracked fájlok kimaradnak, azokat előbb git add-dal kell felvenni.

⛔ A COMMIT MÉG NEM FELTÖLTÉS

A git commit a változásokat a helyi repóba (a .git mappába) rögzíti. A GitHubra ettől még semmi nem kerül fel: ahhoz a git push kell (18. fejezet). Commitolni internet nélkül is lehet.

Ha nincs mit commitolni (üres az előkészítési terület), a Git a git status-szerű kimenettel válaszol, például: nothing to commit, working tree clean, vagy no changes added to commit, ha van módosítás, de nincs előkészítve.

6Visszavétel az előkészítésből

Tévedésből előkészítettél egy fájlt? Semmi gond, amíg nem commitoltad:

PS> git restore --staged todo.txt

A fájl kikerül a „dobozból”, a tartalma a munkakönyvtárban változatlan marad. Új fájlnál újra untracked, módosított fájlnál újra modified lesz. (Régebbi leírásokban ugyanezt a git reset HEAD <fájl> végzi. Még nem commitolt repóban a Git a git rm --cached <fájl> parancsot javasolja.)

⛔ A git restore <fájl> VÉGLEGESEN ELDOB

A --staged nélküli git restore index.html a munkakönyvtárban lévő, még nem előkészített módosításokat eldobja, és a fájlt visszaállítja az előkészített (vagy utoljára commitolt) állapotra. A módosítás nem kerül a Lomtárba! A visszavonás minden módjáról a 10. fejezetben lesz szó.

7Első pillantás a történetre

A git log kilistázza a commitokat, a legújabbal kezdve:

PS> git log
commit 8c41d0a2f59e3b7d6c1a0e9f8b7a6c5d4e3f2a1b (HEAD -> main)
Author: Kovács Anna <kovacs.anna@pelda.hu>
Date:   Tue Sep 22 10:41:07 2026 +0200

    Kapcsolat oldal

commit 3b18e512dba79e4c8300dd08aeb37f8e728b8dad
Author: Kovács Anna <kovacs.anna@pelda.hu>
Date:   Tue Sep 22 10:12:55 2026 +0200

    Első változat: kezdőlap és stílus

PS> git log --oneline
8c41d0a (HEAD -> main) Kapcsolat oldal
3b18e51 Első változat: kezdőlap és stílus

A HEAD -> main jelzi, hogy a main ágon vagy, és ez a legutóbbi commitja. Ha a lista hosszú, a Git lapozóban mutatja: kilépés q (3. fejezet). Az előzmények részletes olvasását a 8. fejezetben tanuljuk.

8Git-szimulátor élő ábrával

A weboldal repó már létezik, benne két még követetlen fájl. Add ki a parancsokat, és figyeld az ábrát a terminál alatt: minden parancs után megmutatja, melyik fájl melyik területen van. A szimulátor ismeri a git add, git commit, git status [-s], git log [--oneline] és git restore [--staged] parancsot.

PowerShell + Git

Windows PowerShell
Küldetések 0 / 10

    9GitHub Desktop: a Changes fül

    A GitHub Desktop a Changes fülön mutatja a munkakönyvtár változásait. Az előkészítési terület nem látszik külön, a jelölőnégyzetek helyettesítik:

    Current repositoryweboldalCurrent branchmainFetch origin—
    Changes 3History
    index.html●
    kapcsolat.html+
    todo.txt+
    Kapcsolat oldal és menüpont
    Description
    Commit 2 files to main
    index.html
      <nav>
        <a href="index.html">Kezdőlap</a>
    +   <a href="kapcsolat.html">Kapcsolat</a>
      </nav>
    GitHub DesktopParancssori megfelelője
    A Changes fül listája a jelekkel (● módosult, + új, − törölt)git status
    A fájlra kattintva jobb oldalt a változás (zöld: új sor, piros: törölt sor)git diff (8. fejezet)
    Bepipált jelölőnégyzetgit add <fájl>
    A pipa kivételegit restore --staged <fájl>
    Summary (kötelező) + Descriptiona commitüzenet első sora + a részletes leírás
    Commit … to main gombgit commit
    History fülgit log
    Jobb klikk a fájlon → Discard changes…git restore <fájl> (eldobja a módosítást!)
    ℹ️ ALAPBÓL MINDEN BE VAN PIPÁLVA

    A GitHub Desktop minden változást automatikusan bepipál, vagyis alapesetben mindent commitol, mint a git add -A és a git commit együtt. Commit előtt mindig nézd át a listát, és vedd ki a pipát abból, ami nem odavaló. Egy fájlon belül soronként is választhatsz: a diffben a sorszámokra kattintva csak a kijelölt sorok kerülnek a commitba.

    10VS Code: Source Control

    A VS Code Source Control panelje (Ctrl + Shift + G) külön mutatja a két csoportot: Staged Changes (előkészítve) és Changes (nincs előkészítve).

    A VS Code-banJelentés / megfelelő
    U M A D betű a fájl mellettUntracked · Modified · Added (előkészített új fájl) · Deleted
    + ikon a fájlon (Stage Changes)git add <fájl>
    − ikon a Staged Changes alatt (Unstage Changes)git restore --staged <fájl>
    Üzenet a felső mezőbe, majd ✓ Commit (Ctrl + Enter)git commit -m "…"
    ↶ ikon (Discard Changes)git restore <fájl> (eldobja!)

    Ha semmit nem készítettél elő, és a ✓ Commit gombra kattintasz, a VS Code felajánlja, hogy mindent előkészít és commitol. Ez kényelmes, de gondold át, tényleg mindent szeretnél-e.

    11A mindennapi munkamenet

    Ezt a kört fogod naponta sokszor bejárni:

    1. Szerkesztésdolgozol a fájlokon
    2. git statusmi változott?
    3. git add …összekészíted, ami összetartozik
    4. git statustényleg az van a dobozban, amit akartál?
    5. git commit -m "…"rögzíted, beszédes üzenettel
    6. git log --onelineott van a történetben
    💡 GYAKRAN, KICSIBEN

    Inkább sok kis commit, mint egy óriási. Egy commit egy logikai változást tartalmazzon, például „Kapcsolat űrlap validálása”, és ne „Péntek délutáni munka” legyen az üzenete. A jó commitról szól a következő fejezet.

    12Feladatok

    Gyakorló feladatok

    ⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás — a saját gépeden, valódi repóban dolgozz!

    6.1⭐CLI

    Az 5. fejezet elso-repo repójában hozz létre egy index.html és egy style.css fájlt, legyen bennük tartalom is! Minden lépés után futtass git status-t: előbb csak az index.html-t add hozzá, aztán a style.css-t, végül commitold őket "Első változat: kezdőlap" üzenettel. Nézd meg a git log-ot.

    6.2⭐CLI

    Módosítsd az index.html-t! Nézd meg a git status és a git status -s kimenetét az add előtt és után is. Írd le, mit jelentenek a kódok. Commitolj.

    6.3⭐Desktop

    Az 5. fejezetben készült desktop-repo-ban módosíts két fájlt! A GitHub Desktop Changes fülén vedd ki az egyikből a pipát, és csak a másikat commitold. Nézd meg a History fület, és hogy mi maradt a Changes-ben.

    6.4⭐⭐CLI

    Idézd elő az MM állapotot: add hozzá a fájlt, majd módosítsd tovább! Mit mutat a git status? Commitolj úgy, hogy ne add hozzá újra, majd nézd meg a git status-t. Mi került a commitba, és mi maradt ki?

    6.5⭐⭐CLI

    Hozz létre egy jelszavak.txt fájlt, és „véletlenül” add ki a git add . parancsot! Vedd ki a fájlt az előkészítésből úgy, hogy a többi előkészített fájl maradjon, és ellenőrizd a git status-szal.

    6.6⭐⭐Desktop

    A VS Code Source Control panelén készíts elő egy fájlt a + ikonnal, írj üzenetet, és commitolj a ✓ gombbal! Ellenőrizd parancssorból a git log --oneline kimenetét.

    6.7⭐⭐⭐CLI

    Módosítsd egyszerre a fejlécet (index.html), a láblécet (lablec.html) és a színeket (style.css)! Készíts belőlük három külön commitot beszédes üzenetekkel. Magyarázd el, miért jobb ez, mint egyetlen „módosítások” commit.

    13Önellenőrző kvíz

    Ellenőrizd magad!

    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.

    14Fogalomtár

    FogalomJelentés
    munkakönyvtár (working directory)a fájlok aktuális állapota a lemezen; itt szerkesztesz
    előkészítési terület (staging area, index)a következő commitba kerülő fájlállapotok gyűjtőhelye
    repositorya .git mappa: a rögzített commitok, a történet
    tracked / untrackedkövetett (a Git nyilvántartja) / követetlen (még sosem volt előkészítve)
    unmodified · modified · stagedváltozatlan · módosított, de nem előkészített · előkészített
    git adda fájl jelenlegi tartalmát az előkészítési területre teszi
    git commit -m "…"az összeállított (előkészített) változásokat új commitként rögzíti
    git commit -am "…"a követett fájlok változásait előkészíti és commitolja (az új fájlokat nem)
    root-commita repó legelső, szülő nélküli commitja
    git restore --stagedkiveszi a fájlt az előkészítésből (a tartalom marad)
    git restoreeldobja a munkakönyvtár nem előkészített módosításait
    git status -srövid állapot két betűvel: előkészítés + munkakönyvtár (??, A, M, D)

    15Összegzés

    1. Három terület: munkakönyvtár → (git add) → előkészítési terület → (git commit) → repository.
    2. Állapotok: untracked, unmodified, modified, staged. A git status ezeket mutatja (zöld: előkészítve, piros: nem).
    3. A git add a pillanatnyi tartalmat készíti elő. Ha utána módosítasz, újra add kell (MM).
    4. git commit -m "üzenet" rögzít. Az -am az új fájlokat nem veszi fel. A commit nem tölt fel a GitHubra.
    5. git restore --staged: ki a dobozból · git restore: módosítás eldobása (végleges!).
    6. GitHub Desktop: pipa = add, Commit to main = commit · VS Code: +, −, ✓ Commit.

    A következő fejezetben megtanuljuk, milyen a jó commit: mekkora legyen, és hogyan írjunk hozzá jó üzenetet.