Weboldal keresés

A Git Version Control System használata Linuxban [Átfogó útmutató]


A Verzióvezérlés (verzióvezérlés vagy forrásvezérlés) a fájl vagy fájlgyűjtemény időbeli változásainak rögzítésének módja, így később előhívhatja az egyes verziókat. A verziókezelő rendszer (vagy röviden VCS) egy olyan eszköz, amely rögzíti a fájlrendszeren lévő fájlok változásait.

Számos verziókezelő rendszer létezik, de jelenleg a Git a legnépszerűbb és leggyakrabban használt, különösen a forráskód kezeléséhez. A verzióvezérlés gyakorlatilag szinte bármilyen típusú fájlhoz használható a számítógépen, nem csak a forráskódhoz.

A verzióvezérlő rendszerek/eszközök számos olyan funkciót kínálnak, amelyek lehetővé teszik egyének vagy emberek csoportja számára, hogy:

  • létrehozni egy projekt verzióit.
  • a változások pontos követése és a konfliktusok megoldása.
  • egyesítse a változtatásokat egy közös verzióba.
  • visszaállíthatja és visszavonhatja a kiválasztott fájlok vagy a teljes projekt módosításait.
  • elérheti a projekt történeti verzióit, hogy összehasonlíthassa az idők során bekövetkezett változásokat.
  • nézze meg, ki módosított utoljára valamit, ami esetleg problémát okozhat.
  • hozzon létre egy biztonságos külső biztonsági másolatot a projektről.
  • több gépet is használhat egyetlen projekten való munkához, és még sok minden mást.

Egy verziókezelő rendszer, például a Git projektjei főként három részből állnak, nevezetesen:

  • tárház: a projektfájlok állapotának vagy változásainak rögzítésére szolgáló adatbázis. Tartalmazza az új projekthez szükséges összes Git metaadatot és objektumot. Ne feledje, hogy általában ez az, amit a rendszer másol, amikor egy lerakat klónoz egy másik számítógépről egy hálózaton vagy távoli kiszolgálón.
  • munkakönyvtár vagy terület: a projektfájlok másolatát tárolja, amelyeken dolgozhat (hozzáadásokat, törléseket és egyéb módosítási műveleteket végezhet).
  • állomásoztatási terület: egy fájl (a Git alatt indexként ismert) a Git könyvtárban, amely információkat tárol a változásokról, amelyeket készen áll a véglegesítésre (egy fájl vagy fájlkészlet állapotának elmentésére) a tárolóban.

A VCS-eknek két fő típusa van, a fő különbség a tárolók száma:

  • Centralizált verzióvezérlő rendszerek (CVCS): itt minden projektcsapattag saját helyi munkakönyvtárat kap, azonban a változtatásokat egyetlen központi adattárban hajtják végre.
  • Distributed Version Control Systems (DVCS): ennek értelmében minden projektcsapattag saját helyi munkakönyvtárat és Git-könyvtárat kap, ahol commit-ot hajthat végre. Miután az egyén helyben kötelezettséget vállalt, a csapat többi tagja nem férhet hozzá a módosításokhoz, amíg el nem küldi azokat a központi adattárba. A Git egy példa a DVCS-re.

Ezenkívül a Git adattár lehet csupasz (olyan adattár, amely nem rendelkezik működő könyvtárral) vagy nem csupasz (egy működő könyvtárral) Könyvtár). A megosztott (vagy nyilvános vagy központi) tárolóknak mindig csupasznak kell lenniük – minden Github adattár csupasz.

Tanulja meg a verzióvezérlést a Git segítségével

A Git egy ingyenes és nyílt forráskódú, gyors, hatékony, elosztott, könnyen használható és népszerű verziókezelő rendszer, amely nagyon hatékony nagy projekteknél, és figyelemre méltó elágazási és egyesítő rendszerrel rendelkezik. Úgy tervezték, hogy az adatokat inkább úgy kezelje, mint egy mini fájlrendszer pillanatképeinek sorozatát, amelyeket egy Git könyvtárban tárolnak.

A Git alatti munkafolyamat nagyon egyszerű: módosítja a munkakönyvtárában lévő fájlokat, majd szelektíven csak a megváltozott fájlokat adja hozzá az átmeneti területhez, hogy a következő véglegesítés része legyen.

Ha készen áll, végrehajt egy véglegesítést, amely átveszi a fájlokat az átmeneti területről, és véglegesen elmenti a pillanatképet a Git könyvtárba.

A Git Linux rendszeren való telepítéséhez használja a választott disztribúciónak megfelelő parancsot:

sudo apt install git   [On Debian/Ubuntu]
sudo yum install git   [On CentOS/RHEL]

A Git telepítése után javasoljuk, hogy a teljes neve és e-mail cím megadásával mondja el a Gitnek, hogy Ön kicsoda:

git config --global user.name “Aaron Kili”
git config --global user.email “[email ”

A Git beállításainak ellenőrzéséhez használja a következő parancsot.

git config --list 

Létrehoz egy új Git-tárat

A megosztott adattárak vagy a központosított munkafolyamatok nagyon gyakoriak, és ez az, amit itt bemutatunk. Feltételezzük például, hogy megbízást kapott egy távoli központi tár létrehozására a szervezet különböző részlegeinek rendszergazdái/programozói számára, hogy dolgozzon egy bashscripts nevű projekten, amely a alatt fog tárolni. >/projects/scripts/ a szerveren.

SSH-t a távoli szerverre, és hozza létre a szükséges könyvtárat, hozzon létre egy sysadmins nevű csoportot (adja hozzá a projektcsapat összes tagját ebbe a csoportba, pl. felhasználói adminisztrátor), és állítsa be a megfelelő engedélyeket. ezt a könyvtárat.

mkdir-p /projects/scripts/
groupadd sysadmins
usermod -aG sysadmins admin
chown :sysadmins -R /projects/scripts/
chmod 770 -R /projects/scripts/

Ezután inicializáljon egy üres projekttárat.

git init --bare /projects/scripts/bashscripts

Ezen a ponton sikeresen inicializált egy üres Git könyvtárat, amely a projekt központi tárolója. Próbáljon meg listázni a könyvtárat, hogy lássa az összes fájlt és könyvtárat:

ls -la /projects/scripts/bashscripts/

Klónozz egy Git Repository-t

Most klónozza a távoli megosztott Git-tárat a helyi számítógépére SSH-n keresztül (HTTP/HTTPS-en keresztül is klónozhatja, ha van telepítve és megfelelően konfigurált webszerver, ahogyan az eset a legtöbb nyilvános adattárral a Githubon), például:

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts 

Ha egy adott könyvtárba (~/bin/bashscripts) szeretné klónozni, használja az alábbi parancsot.

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Most már van a projekt helyi példánya egy nem csupasz tárolóban (munkakönyvtárral), létrehozhatja a projekt kezdeti struktúráját (azaz hozzáadhat egy README.md fájlt fájl, alkönyvtárak a szkriptek különböző kategóriáihoz, pl. recon a felderítő szkriptek tárolására, sysadmin ro sysadmin szkriptek tárolása stb.):

cd ~/bin/bashscripts/
ls -la

Ellenőrizze a Git állapot összefoglalóját

A munkakönyvtár állapotának megjelenítéséhez használja a status parancsot, amely megjeleníti az Ön által végrehajtott módosításokat; mely fájlokat nem követi nyomon a Git; azokat a változtatásokat, amelyeket színpadra vittek és így tovább.

git status 

Git Stage Változások és kötelezettségvállalás

Ezután hajtsa végre az összes módosítást az add paranccsal a -A kapcsolóval, és hajtsa végre a kezdeti véglegesítést. A -a jelző utasítja a parancsot, hogy automatikusan helyezze el a módosított fájlokat, a -m pedig egy véglegesítési üzenet megadására szolgál:

git add -A
git commit -a -m "Initial Commit"

Helyi kötelezettségvállalások közzététele a távoli Git-tárban

A projektcsapat vezetőjeként most, hogy létrehozta a projektstruktúrát, közzéteheti a módosításokat a központi adattárban a push paranccsal az ábrán látható módon.

git push origin master

Jelenleg a helyi git-tárhelynek naprakésznek kell lennie a projekt központi adattárával (origin), ezt a status parancs ismételt futtatásával ellenőrizheti.

git status

Arra is tájékoztathatja kollégáit, hogy kezdjenek el dolgozni a projekten, ha klónozzák a tárat a helyi számítógépeikre.

Hozzon létre egy új Git-ágat

Az elágazás lehetővé teszi, hogy a projekt egy funkcióján dolgozzon, vagy gyorsan megoldja a problémákat a kódbázis (fő ág) érintése nélkül. Új ág létrehozásához, majd váltáshoz használja a ág és a checkout parancsokat.

git branch latest
git checkout latest

Alternatív megoldásként létrehozhat egy új ágat, és egy lépésben átválthat rá a checkout paranccsal a -b jelzővel.

git checkout -b latest

Létrehozhat egy új ágat például egy másik ág alapján is.

git checkout -b latest master

Ha ellenőrizni szeretné, hogy melyik ágban van, használja a branch parancsot (a csillag karakter jelzi az aktív ágat):

git branch

Az új ág létrehozása és átváltása után hajtson végre néhány változtatást az alatt, és hajtson végre néhány véglegesítést.

vim sysadmin/topprocs.sh
git status
git commit add  sysadmin/topprocs.sh
git commit -a -m 'modified topprocs.sh'

Változások egyesítése egyik ágról a másikra

Az ágteszt alatti módosítások fő ágba való egyesítéséhez váltson a fő ágra, és hajtsa végre az egyesítést.

git checkout master 
git merge test 

Ha már nincs szüksége egy adott ágra, törölheti azt a -d kapcsolóval.

git branch -d test

Töltse le a módosításokat a távoli központi adattárból

Feltételezve, hogy a csapattagok változtatásokat hajtottak végre a központi projekttárban, a pull paranccsal letöltheti a projekt helyi példányára vonatkozó módosításokat.

git pull origin
OR
git pull origin master	#if you have switched to another branch

Vizsgálja meg a Git Repository-t, és végezzen összehasonlításokat

Ebben az utolsó részben bemutatunk néhány hasznos Git-funkciót, amelyek nyomon követik az adattárban történt összes tevékenységet, így lehetővé teszik a projekt előzményeinek megtekintését.

Az első szolgáltatás a Git log, amely a véglegesítési naplókat jeleníti meg:

git log

Egy másik fontos funkció a show parancs, amely különféle típusú objektumokat jelenít meg (például véglegesítéseket, címkéket, fákat stb.):

git show

A harmadik fontos tulajdonság, amit tudnia kell, a diff parancs, amely az ágak közötti különbségek összehasonlítására vagy megjelenítésére szolgál, a munkakönyvtár és az index közötti változások megjelenítésére, a lemezen lévő két fájl közötti változásokra és még sok másra.

Például a fő és a legújabb ág közötti különbség megjelenítéséhez futtassa a következő parancsot.

git diff master latest

Olvassa el még: 10 legjobb Git-alternatíva nyílt forráskódú projektek fogadására

Összegzés

A Git lehetővé teszi egy csapat számára, hogy ugyanazon fájl(ok) használatával dolgozzanak együtt, miközben rögzítik a fájl(ok) idővel bekövetkezett változásait, hogy később előhívhassák az egyes verziókat.

Így a Git segítségével kezelheti a forráskódot, a konfigurációs fájlokat vagy a számítógépen tárolt bármely fájlt. További dokumentációért tekintse meg a Git Online Dokumentációt.