Ez a jegyzet a https://www.eet.bme.hu/~timar/data/git.pdf linken található diasorból kiindulva íródott.
A verziókezelő rendszerek / Version Control (VC) projektek különböző verzióinak (változatainak) nyilvántartására és kezelésére szolgálnak.
A Git egy elosztott verziókezelő rendszer (Hasonlóan pl. a Mercurialhoz)→ nem hagyatkozik egy központi szerverre. Nincs single point of failure 🤩
A teljes verziótörténet megtalálható minden fejlesztő gépén.
Az internetkapcsolat csak arra kell, hogy szinkronizáljuk a különböző fejlesztők munkáját.
Ilyenkor valamilyen hálózaton előrhető távoli repository-ba (tárolóba) kerül a projektünk új verziója.
Innen a többi fejlesztő letöltheti a munkánk.
Egy új verziót **commit-**nak nevezünk. Ez a változtatás alapegysége, hogyha úgy tetszik.
A commitok sorozata a branch, azaz ág.
Lehetség van párhuzamosan több fejlesztési ág számontartására.
Ez azt jelenti, hogy egyszerre több fejlesztő is dolgozhat egy projekten.
Így a commitok branch-ekbe rendeződve egy irányított fa gráfot alkotnak.
Annak érdekében, hogy a repository kezelése ne legyen túl erőforrásigényes, a git snapshotok láncolatát tárolja. Hogyha elkészül egy új verzió, de egy adott fájl ebben a verzióban nem módosult az előzőekhez képest, akkor ennek a fájlnak az előző olyan változatára hivatkozik, ahol megváltozott.
Minden verzióról ellenőrző összeg (checksum) készül.
Pl.: 24b9da6552252987aa493b52f8696cd6d3b00373