Mi az a verziókövetés?

Befejeződött

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 maingyakran a Gitben van elnevezve master . Az aktuális ág feje neve HEAD. 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 és git pull. A git a parancs, a push vagy a pull 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!