Learning
Git CLI

Mi az a Git és hogyan működik?

Verziókezelés, repository, commit, branch és a Git belső modellje.

Mi az a Git és hogyan működik?

Verziókezelés

A verziókezelés (version control) egy olyan rendszer, amely rögzíti a fájlok változásait az idő múlásával. Ezzel lehetővé válik, hogy visszatérjünk egy korábbi állapothoz, összehasonlítsuk a különböző verziókat, megtaláljuk, mikor és ki vezette be egy adott változtatást, illetve párhuzamosan dolgozzunk különböző funkiókon.

A Git egy elosztott verziókezelő rendszer (distributed VCS), ami azt jelenti, hogy minden fejlesztőnél megtalálható a teljes repository másolata a teljes előzménnyel együtt. Nincs szükség állandó hálózati kapcsolatra – a legtöbb műveletet lokálisan végezzük el.

Repository

A repository (röviden: repo) egy könyvtár, amelyet a Git felügyel. Tartalmaz minden fájlt, a teljes változástörténetet, az ágakat (branch-eket), a tageket és a beállításokat.

Kétféle repository létezik:

  • Lokális repository: a saját gépünkön lévő másolat, ahol dolgozunk
  • Remote repository: egy szerveren (pl. GitHub, GitLab, Bitbucket) tárolt, megosztott verzió

A Git a repository adatait a .git mappában tárolja a projekt gyökerében.

Commit

A commit a Git alapegysége: egy pillanatfelvétel (snapshot) a projekt aktuális állapotáról. Minden commit tartalmaz:

  • egy egyedi azonosítót (SHA-1 hash, pl. a3f2c1d)
  • a szerző nevét és e-mail-címét
  • egy időbélyeget
  • egy üzenetet, amely leírja a változtatás célját
  • egy mutatót az előző commitra (szülő commit)

A commitok egy irányított aciklikus gráfot (DAG) alkotnak, amelyen a teljes változástörténet visszakövethető.

Branch (ág)

A branch egy könnyűsúlyú mutató, amely egy adott commitra mutat. Segítségével párhuzamosan dolgozhatunk különböző funkciókon, és csak akkor egyesítjük a változtatásokat, ha készen állnak.

Az alapértelmezett branch neve általában main (korábban master). Minden új commit automatikusan előrébb tolja az aktuális branch mutatóját.

A Git belső működése – három terület

Munkakönyvtár       Staging area (Index)      Lokális repository
(Working directory)                            (.git mappa)

[módosított fájlok] ---git add---> [staged fájlok] ---git commit---> [commit history]
  • Munkakönyvtár: ahol a fájlokat szerkesztjük
  • Staging area (index): ahol összeállítjuk a következő commitot
  • Lokális repository: ahol a commitok végleges állapotban tárolódnak

Rövid összefoglaló

  • A Git elosztott verziókezelő, amely lokálisan tárolja a teljes változástörténetet.
  • A repository a projekt és előzményeinek tárolóhelye; a .git mappában lakik.
  • A commit a változások pillanatfelvétele, egyedi hash-sel azonosítva.
  • A branch egy könnyűsúlyú mutató egy adott commitra.
  • A Git három területen dolgozik: munkakönyvtár, staging area, repository.

On this page