Git
Főnév
Git (tsz. Gits)
- (informatika) A Git egy elosztott verziókezelő rendszer, amelyet eredetileg Linus Torvalds hozott létre 2005-ben, hogy kezelje a Linux kernel fejlesztését. Azóta a Git széles körben elterjedt és az egyik legnépszerűbb eszközzé vált a szoftverfejlesztésben. A Git lehetővé teszi a fejlesztők számára, hogy nyomon kövessék a kódváltozásokat, együttműködjenek más fejlesztőkkel és biztonságosan visszatérjenek a korábbi verziókhoz, ha szükséges.
Git főbb jellemzői:
- Elosztott verziókezelés: A Git decentralizált, vagyis minden fejlesztő, aki lemásolja (klónozza) a projektet a saját gépére, rendelkezik egy teljes másolattal a projekt minden történetéről. Ezáltal nincs szükség egy központi szerverre a projekt történetének tárolásához, bár általában használnak központi tárolókat, mint például a GitHub.
- Verziókövetés: A Git lehetővé teszi, hogy minden kódváltoztatást nyomon kövessünk. Minden változtatást egy commit-ban tárol, amely tartalmazza az új verziót, a módosítások leírását és az érintett fájlokat. Minden commit egyedi azonosítóval (SHA-1 hash) rendelkezik, így később könnyen azonosítható.
- Ágak (branches): Az ágak lehetővé teszik, hogy párhuzamosan különböző fejlesztési irányokon dolgozzunk. A fő ág általában a
main
(vagy régebbenmaster
), de bármikor létrehozhatók új ágak például új funkciók fejlesztésére vagy hibajavításra. Az ágak összefésülhetők (merge) más ágakkal, ha a fejlesztés kész. - Merge és konfliktuskezelés: Amikor két különböző ág összefésülése (merge) történik, előfordulhatnak konfliktusok, ha ugyanazon a kódrészen történtek módosítások. A Git képes automatikusan kezelni a legtöbb konfliktust, de ha manuális beavatkozásra van szükség, a fejlesztő döntheti el, melyik változatot tartja meg.
- Commit és staging: A változtatások commit-álása előtt egy úgynevezett staging area-ba kerülnek. Ez egy átmeneti terület, ahol kiválaszthatjuk, mely fájlokat és változtatásokat szeretnénk commit-álni. Ez rugalmasságot biztosít a fejlesztőknek, hogy egyszerre több dolgon dolgozzanak, de csak azokat a változtatásokat commit-álják, amik készen állnak.
Alapvető Git parancsok:
- git init: Egy új Git repository létrehozása a projekt könyvtárában.
- git clone [repository URL]: Egy meglévő távoli repository letöltése és másolása a helyi gépre.
- git status: Megmutatja az aktuális állapotot, például mely fájlok módosultak, és melyek nincsenek még commit-álva.
- git add [fájl]: A módosított fájlokat hozzáadja a staging area-hoz, hogy készen álljanak a commit-álásra.
- git commit -m “[üzenet]”: A változtatások commit-álása a staging area-ból. Az üzenetben meg kell adni egy rövid leírást a változásokról.
- git push: A helyi változtatások feltöltése egy távoli szerverre (pl. GitHub).
- git pull: A távoli repó frissítéseinek letöltése és összeolvasztása a helyi változatba.
- git branch: Megmutatja az elérhető ágakat, vagy új ág létrehozására is használható.
- git merge [branch név]: Két különböző ág összefésülése.
- git log: A commitok történetének megjelenítése.
Git munkafolyamat:
- Kezdeti beállítás: Kezdd el a projektet a
git init
parancs futtatásával, vagy klónozz egy meglévő repót. - Kód fejlesztése: Végezz módosításokat a projekten, majd ellenőrizd a változtatások állapotát a
git status
paranccsal. - Staging: Add hozzá a változtatott fájlokat a staging area-hoz a
git add
parancs segítségével. - Commitálás: Készíts egy commit-ot a
git commit -m
paranccsal, amiben leírod, milyen változtatások történtek. - Push: Ha készen állsz, a
git push
paranccsal feltöltheted a változtatásokat a központi szerverre, pl. GitHub-ra. - Frissítések letöltése: Használd a
git pull
parancsot, hogy letöltsd és összeolvaszd más fejlesztők változtatásait a saját ágaddal.
Git munkafolyamat típusok:
- Feature branch workflow: Minden új funkció vagy hibajavítás saját ágban történik, és csak akkor olvad össze a fő ággal, amikor készen van.
- Forking workflow: Nyílt forráskódú projektekhez használt módszer, amelyben minden fejlesztő saját repót hoz létre a projektből (fork), dolgozik rajta, majd pull requestet küld a fő repóba.
- Gitflow workflow: Strukturáltabb fejlesztési módszer, amely külön ágakat használ a fejlesztés, tesztelés és kiadások kezelésére.