Ebben a részben végigvesszük a Git legfontosabb, gyakorlati parancsait – azokat, amelyeket egy fejlesztés során nap mint nap használni fogsz.
Jó ideje használom már én is a Git-et, és ebben az anyagban pontosan azokat a parancsokat gyűjtöttem össze, amiket én magam is a munkám 85%-ában használok napi szinten.
Nincs felesleges elmélet, nincs bonyolítás – csak működő példák, amit ha begyakorolsz, teljesen kézben fogod tartani a verziókezelést.
Legfontosabb Git parancsok a gyakorlatban
git status – Megnézed, mi változott:
git statusMit mutat:
- hol állsz (melyik ágon)
- melyik fájl módosult
- van-e commitra váró fájl
git add – Kiválasztod, mit akarsz elmenteni:
git add . # minden fájl hozzáadása
git add fajlnev.phpgit commit – Mentés:
git commit -m "Üzenet a változásról"git push – Feltöltés GitHubra:
git push -u origin ágnevgit pull – Frissítés GitHubról (ha más is dolgozik rajta):
git pullgit log –oneline – Korábbi mentések megtekintése:
git log --oneline
# Ez mutatja, pl.:
92f74ba Szállítási árak
a5f0d4a Menü átrendezés
4dc0f85 UX teszt első verzió
# A bal oldalon látható 7 karakteres kódok a commit hash-ek (HEAD-ek) rövidített formái.
# Ezek az azonosítók szolgálnak arra, hogy pontosan be tudd azonosítani a mentéseket.git branch – Megnézed, milyen ágak vannak, és melyiken vagy:
git branchgit checkout -b újág – Új ág létrehozás és átváltunk rá:
git checkout -b újág
# Ez a parancs egyetlen lépésben két dolgot csinál:
# Létrehoz egy új ágat (branch-et), újág néven + Azonnal át is vált ráÁgak (branch) létrehozásához kis kiegészítő:
| Parancs | Mit csinál |
|---|---|
git branch ág_neve | Csak létrehozza az ágat |
git checkout ág_neve | Csak átvált a megadott ágra |
git checkout -b ág_neve | Létrehozza és azonnal átvált rá (2 az 1-ben) |
git checkout main – Váltás másik ágra:
git checkout main
#Létező main ágra vátunkgit merge ágnev – Másik ág összeolvasztása az aktuálisba:
git merge UX-refactoring
# Itt van egy UX refactoring águnk és ha minden jól sült el, összeolvaszthatjuk a main ággalÉs most jön az egyik kedvencem! Visszaállítás TOTÁLIS katasztrófa esetén! Akkor, ha minden elromlott egy adodtt ponttól, és csak akkor!
git reset –hard COMMITHASH – Visszaállás egy régi állapotra:
git reset --hard 4dc0f85
# Itt a 4dc0f85 a commit hash-ek (HEAD-ek), amit git log --oneline -al listáhatunk ki!
# Ezek lényegében a visszaálítási pontok!Mit csinál pontosan a git reset --hard?
Ezzel a paranccsal a branch utolsó commit-ja mostantól a 4dc0f85 lesz.
A korábbi a5f0d4a és 92f74ba commit-ok már nem szerepelnek a git log kimenetében.
Az ezután következő commit-ok nem lesznek többé elérhetők abban az ágba (látszólag „törlődnek”), de a Git még pár napig megtartja őket a reflog-ban.
Az utána következő commit-ok látszólag „törlődnek”, de a Git reflog-ban még elérhetők egy ideig:
git reflog
Áthelyezi a HEAD mutatót a megadott <COMMITID>-re.
Munkakönyvtár és a staging area tartalma is visszaáll a megadott commit állapotára.
Rövid példa
#Régi git log --oneline után:
92f74ba Szállítási árak
a5f0d4a Menü átrendezés
4dc0f85 UX teszt első verzió
#Reseteljük a UX teszt első verzió -ra, aminek a HEAD hash-e: 4dc0f85
#Ez törli a későbbi commitokat!
git reset --hard 4dc0f85
#Új git log --oneline után
4dc0f85 UX teszt első verzióÍgy az a5f0d4a és 92f74ba commit-ok nem szerepelnek többé a branch történetében. De git reflog-al még visszahívható egy ideig!
Megjegyzés a reset –hard parancshoz!
A törölt commitok még a git reflog-ban visszakereshetők egy ideig.
Ha már push-oltál a távoli repóba, a --hard reset után csak git push --force-al szinkronizálj, és egyeztess a csapattal (ha van, ha magad dolgozol, annál jobb 🙂 )!
git push –force – Hard reset után feltolás GitHubra:
git push --forcegit remote -v – Megnézed, melyik GitHub repo van hozzárendelve:
git remote -vgit clone URL.git – Másik gépre vagy új helyre letöltöd a repót:
git clone https://github.com/felhasznalonev/reponev.gitgit reflog – Vészhelyzet! Megnézed, mikor voltál melyik állapotban:
git refloggit reset –hard HEAD@{1} – Ha vissza akarsz menni egy pillanattal ezelőttire:
git reset --hard HEAD@{1}Összefogaló:
| Parancs | Mire jó |
|---|---|
git status | Mi változott? |
git add . | Minden változást előkészít |
git commit -m "..." | Változások mentése |
git push | Feltöltés GitHubra |
git checkout -b név | Új ág létrehozása és váltás |
git log --oneline | Commitok listázása |
git reset --hard commitid | Visszaugrás régi állapotra (fájlszinten is) |
git push --force | Feltöltés reset után |
Ha idáig eljutottál, akkor már biztos alapszintű Git-tudásod van.
Ezeket a parancsokat napi szinten használják a fejlesztők – és most már te is fogod.
Persze, a Git ennél jóval többet tud, de ezek az alapok már önálló, magabiztos használatra elegek.
Nem kell többé kézzel, számozottan menteni a verziókat, nem fogod elveszíteni a munkád, és vissza tudsz lépni bármikor!
Git haladó parancsok
Hibakezelés, összevonás, visszalépés
Az alapparancsokkal már simán elboldogulsz, de ha ténylegesen dolgozol projekteken, hamar eljön az a pont, amikor valamit elrontasz, vissza kell állni, vagy több ágat kell kezelni párhuzamosan.
Az alábbi parancsok ezekre az életszerű helyzetekre adnak megoldást.
# GIT HALADÓ PARANCSOK – kommentben a parancs részletei
# Félretett változtatások ideiglenes tárolása
git stash # Elteszi a nem commitolt változtatásokat
git stash pop # Visszateszi a legutóbbi stash-t
# Ágak összeolvasztása (merge)
git checkout main # Átváltás a célágra (pl. main)
git merge feature-ag # Az adott ágat beleolvasztja a main-be
# Konfliktus esetén: a fájlban manuálisan feloldod, majd:
git add . # A feloldott fájlokat hozzáadod
git commit # Létrehozod a merge utáni commitot
# Nem verziókezelt fájlok törlése
git clean -fd # Törli a nem követett fájlokat és könyvtárakat (force + directory)
# Különbségek megtekintése
git diff # Megmutatja, mi változott az utolsó commit óta
git diff fajlnev.php # Csak egy adott fájl módosításait mutatja
# Átírás merge helyett (tisztább történet)
git checkout feature # Átváltás a módosított ágra
git rebase main # Úgy viszi rá a változtatásokat, mintha most történtek volna
# Már volt, de ismétlésnek: előző lépések visszanézése, visszaállítás vészhelyzetben
git reflog # Teljes mozgásnapló: mit csináltál a HEAD-del
git reset --hard HEAD@{1} # Visszaállás az előző HEAD állapotra
# Egy adott commit átvétele a jelenlegi ágba
git cherry-pick 92f74ba # Átveszi a megadott commit tartalmát
# Reset típusok – HEAD visszatekerése
git reset --soft commitid # Visszateker, de megtartja a staging állapotot
git reset --mixed commitid # Visszateker, staging üres, working copy marad (ez az alap)
git reset --hard commitid # Visszateker, staging és working copy is törlődik
# Egy fájl visszaállítása az utolsó commit szerinti állapotra
git restore fajlnev.php




Vélemény, hozzászólás?