Mi az a verziókövetés?
A verziókövetési rendszer (VCS) egy olyan program vagy programkészlet, amely egy fájlgyűjtemény módosításait követi nyomon. A VCS egyik célja, hogy könnyen visszahívja az egyes fájlok vagy a teljes projekt korábbi verzióit. Egy másik cél, hogy több csapattag is dolgozhasson egy projekten, még ugyanazon a fájlon is, ugyanakkor anélkül, hogy hatással lenne egymás munkájára.
A VCS másik neve egy szoftverkonfiguráció-kezelő (SCM) rendszer. A két kifejezést gyakran felváltva használják – valójában a Git hivatalos dokumentációja git-scm.com található. Technikailag a verziókövetés csak az SCM-ben alkalmazott eljárások egyike. A VCS nem szoftveres projektekhez használható, beleértve a könyveket és az online oktatóanyagokat.
VCS-vel a következőt teheti:
- Megtekintheti egy projekt minden módosítását a módosítások időpontjával és az azokat végző személlyel együtt.
- Minden módosítással együtt adjon meg egy üzenetet a mögöttes érvelés magyarázatához.
- Kérje le a teljes projekt vagy egyes fájlok korábbi verzióit.
- Hozzon létre ágakat, ahol a módosítások kísérletileg végezhetők el. Ez a funkció lehetővé teszi, hogy több különböző módosítást (például szolgáltatásokat vagy hibajavításokat) dolgozhassanak egyszerre, akár különböző személyek is, anélkül, hogy hatással lenne a fő ágra. Később egyesítheti azokat a módosításokat, amelyeket vissza szeretne tartani a főágba.
- Címkét csatolhat egy verzióhoz – például egy új kiadás megjelöléséhez.
A Git egy gyors, sokoldalú, nagymértékben skálázható, ingyenes, nyílt forráskódú VCS. Elsődleges szerzője Linus Torvalds, a Linux megalkotója.
Elosztott verziókövetés
A korábbi VCSes-példányok, köztük a CVS, a Subversion (SVN) és a Perforce egy központosított kiszolgálóval tárolták a projekt előzményeit. Ez a központosítás azt jelentette, hogy az egyetlen kiszolgáló is potenciálisan egyetlen meghibásodási pont volt.
A Git elosztott, ami azt jelenti, hogy a projekt teljes előzményei mind az ügyfélen , mind a kiszolgálón tárolódnak. A fájlokat hálózati kapcsolat nélkül is szerkesztheti, azokat helyben is beadhatja, majd szinkronizálhatja őket a kiszolgálóval, ha lesz elérhető kapcsolat. Ha egy kiszolgáló leáll, a projekt helyi másolata még mindig rendelkezésre áll. Tulajdonképpen nincs is szükség kiszolgálóra. A módosításokat át lehet adni e-mailben, vagy megosztható adathordozó használatával, de a gyakorlatban senki sem használja így a Gitet.
Git-terminológia
A Git megismeréséhez el kell sajátítania annak terminológiáját. Íme egy rövid lista a Git-felhasználók által gyakran használt kifejezésekről. Egyelőre ne aggódjon a részletek miatt; ezek a kifejezések mind ismerősek lesznek, miközben végigvezeti a modulban található gyakorlatokon.
Munkafa: A folyamatban lévő projektet tartalmazó beágyazott könyvtárak és fájlok készlete.
Adattár (adattár): A munkafa legfelső szintjén található könyvtár, ahol a Git megőrzi a projekt összes előzményét és metaadatait. Az adattárakat szinte mindig repo-knak nevezzük. A csupasz adattár nem része munkafának; megosztáshoz vagy biztonsági mentéshez használatos. A csupasz adattár általában egy könyvtár, amelynek neve .git végződésű—például project.git.
Kivonat: Egy kivonatfüggvény által előállított szám, amely egy fájl vagy egy másik objektum tartalmát rögzített számú számjegyként jelöli. A Git 160 bit hosszúságú kivonatokat használ. A kivonatok használatának egyik előnye, hogy a Git képes megállapítani, hogy módosult-e egy fájl: egyszerűen összehasonlítja a fájl kivonatolt tartalmát egy korábbi kivonatolás eredményével. Ha a fájl idő- és dátumbélyege módosul, de a fájlkivonat nem módosul, a Git tudja, hogy a fájl tartalma nem módosul.
Objektum: A Git-adattár négy objektumtípust tartalmaz, mindegyiket egyedileg azonosítja egy SHA-1 kivonat. A blobobjektumok egy szokásos fájlt tartalmaznak. A fa objektum könyvtárat képvisel; neveket, hash-eket és engedélyeket tartalmaz. A véglegesítési objektum a munkafa egy adott verzióját jelöli. A címke egy véglegesítéshez csatolt név.
Véglegesítés: Ha igeként használják, a véglegesítés azt jelenti, hogy véglegesítési objektumot hoz létre. A művelet neve az adatbázisban történő véglegesítésből ered. Ez azt jelenti, hogy véglegesíti a végrehajtott módosításokat, hogy végül mások is láthassák őket.
Ág: Az ág egy nevesített, összekapcsolt commit-ek sorozata. Az ág legutóbbi véglegesítését fejnek nevezzük. Az adattár inicializálásakor létrehozott alapértelmezett ág neve
main
gyakran a Gitben van elnevezvemaster
. Az aktuális ág feje neveHEAD
. Az ágak a Git hihetetlenül hasznos funkciói, mivel lehetővé teszik a fejlesztők számára, hogy egymástól függetlenül (vagy együtt) dolgozzanak az ágakban, és később egyesítsék a módosításokat az alapértelmezett ágba.Távoli: A távoli elérés egy elnevezett hivatkozás egy másik Git-adattárhoz. Adattár létrehozásakor a Git létrehoz egy távoli nevet
origin
, amely az alapértelmezett távoli leküldéses és lekéréses műveletekhez.Parancsok, alparancsok és beállítások: A Git-műveleteket olyan parancsok használatával hajtják végre, mint az
git push
ésgit pull
. Agit
a parancs, apush
vagy apull
pedig az alparancs. Az alparancs határozza meg a műveletet, amit a Gittel szeretne elvégeztetni. A parancsokat gyakran olyan beállítások kísérik, amelyek kötőjeleket (-) vagy kettős kötőjeleket (--) használnak. Például:git reset --hard
.
Ezek a kifejezések és mások, mint push
és pull
, lesz több értelme hamarosan. De valahol el kell kezdenie, és hasznos lehet visszatérni, és áttekinteni ezt a szószedetet a modul befejezése után.
A Git-parancssor
A Githez számos különböző GUI érhető el, beleértve a GitHub Desktopot is. Számos programozási szerkesztő, például a Microsoft Visual Studio Code is rendelkezik a Git felületével. Mindegyik másként működik, és különböző korlátozásokkal rendelkeznek. Egyikük sem implementálja a Git összes funkcióját.
A modul gyakorlatai a Git parancssort használják, pontosabban az Azure Cloud Shellben végrehajtott Git-parancsokat. A Git parancssori felülete azonban ugyanúgy működik, függetlenül attól, hogy milyen operációs rendszert használ. Emellett a parancssor segítségével koppinthat a Git összes funkciójára. Azok a fejlesztők, akik csak a grafikus felhasználói felületen látják a Gitet, néha olyan hibaüzenetekkel szembesülnek, amelyeket nem tudnak megoldani, és a parancssorhoz kell folyamodniuk, hogy újra el tudjanak indulni.
A Git és a GitHub
A Git használata során felmerülhet a kérdés, hogy mi a különbség az általa kínált funkciók és a GitHubon kínált funkciók között.
Ahogy korábban említettük, a Git egy elosztott verziókövetési rendszer (DVCS), amellyel több fejlesztő és más közreműködő is dolgozhat egy projekten. Lehetővé teszi egy vagy több helyi ág együttműködését, majd egy távoli adattárba való leküldését.
A GitHub egy olyan felhőplatform, amely a Gitet használja alapvető technológiaként. A GitHub leegyszerűsíti a projekteken való együttműködés folyamatát, és egy webhelyet, több parancssori eszközt és általános folyamatot biztosít, amellyel a fejlesztők és a felhasználók együtt dolgozhatnak. A GitHub a korábban említett távoli adattárként működik.
A GitHub által biztosított főbb funkciók a következők:
- Problémák
- Beszélgetések
- Lekéréses kérelmek
- Értesítések
- Címkék
- Műveletek
- Villa
- Projektek
A GitHubról további információt a GitHub Microsoft Learn-moduljának bemutatása vagy a GitHub használatának első lépései című súgódokumentációban talál.
A következő lépés a Git kipróbálása!