A Git egy elosztott verziókezelő szoftver, amelyet 2005-ben fejlesztettek ki, mint egy eszközt a Linux kernel fejlesztésének egyszerűsítésére, a programozók közötti koordináció megkönnyítésével. Ma a Git a világ egyik legnépszerűbb verziókezelő szoftverévé vált.
A Git a parancssori felületről használható, és lehetővé teszi bármely adatkészlet változásának nyomon követését. A Git szoftver előnyei a nagy sebesség, az adatok integritása és a munkafolyamat-támogatás. A Git használatával az összes adatmappát bármely eszközre elhelyezzük, és ez egy valódi „tároló”, előzményekkel és az összes változás nyomon követésének lehetőségével.
Ez az útmutató elmagyarázza, hogyan kell telepíteni és használni a Git-et nagyobb Linux disztribúciókon, főleg az Ubuntu 18.04-re hivatkozva.
Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.
A Git telepítése
Frissítse a disztribúciós repókat és kezdje el telepíteni a Git-et az apt-get segítségével:
$ apt-get update && apt-get install git
Az eljárás befejezése után a Git telepítésre kerül. A sikeres telepítés és a szoftververzió ellenőrzéséhez használja a "--version" argumentumot:
Végül, a 'Git' használatának megkezdéséhez konfigurálja a felhasználói információkat (név és e-mail cím), amelyeket az egyes létrehozott csomagokhoz társít:
$ git config --global user.name "Name Surname"
$ git config --global user.email "[email protected]"
Mostantól kezdve ez az útmutató a szoftver különféle tulajdonságainak magyarázatára összpontosít, az egyes parancsok szintaxisának jelentésére. Ezeket a különféle szolgáltatásokat az Ubuntu-on tesztelték, bár minden más Linux disztribúcióra érvényesek.
A munkaterület inicializálása
A Git fő célja egy adott projekt több munkafolyamata közötti együttműködés ösztönzése. Ezért az első lépés a munkaterület inicializálása, egy üres helyi „tároló” létrehozása vagy egy távoli beszerzése.
Az első esetben egy új 'tároló' létrehozásához vagy újraindításához használja az "init" parancsot:
Ez a parancs létrehoz egy '.git' mappát, amely tartalmazza az 'adattárhoz' szükséges összes fájlt. A mappa tartalmazza az összes fájlt, amely a nyomon követhető projektet tartalmazza. Az összes új fájlt kezdetben feloldják, azaz azt jelenti, hogy nem követik őket. Ez azt jelenti, hogy a pillanatkép betöltésekor ezeket nem veszik figyelembe.
Ha el akarja kezdeni a fájlok nyomon követését, használja az 'add' parancsot, majd kövesse az "elküldés" parancsot, vagy röviden jelölje meg, hogy mit tartalmaz:
$ git add <FilePath/FileName>
$ git commit -m ‘<Description>’
Az 1. ábrán a példa az új „tároló” inicializálására és a „FileTestA” fájl beillesztésére, valamint. a terminál kimenete jeleníti meg a művelet sikerét.
1. ábra - Inicializálási példa és nyomkövetés az Ubuntu terminálon
Ha azonban hozzájárulni szeretne egy már létező "lerakathoz", akkor használja a "klón" parancsot. Ezzel a paranccsal a Git megkapja a megadott szerveren lévő projektfájl-verziók összes példányát:
$ git clone <URL> <Destination_Folder>
<URL> helyett adja meg azt a címet, ahonnan letöltheti a csomagot. Míg a <Destination_Folder> helyett, adott esetben jelölje meg a letöltött fájlok mentési útvonalát és mappáját. Ha nem ad meg semmit, ezeket a fájlokat a 'Home' mappába menti.
Ami az URL-t illeti, számos átviteli protokoll használható a Git által a „tárolók” letöltésére:
· Git protokoll (git: //);
HTTP protokoll (http: // vagy https: //);
SSH protokoll (ssh: //);
Felhasználó és szerver (felhasználónév @ szerver: /path.git).
Mentés és szakaszolás
A munkafüzetben lévő fájlok „nyomon követhetetlen”, „nyomon követhető”, „nem módosított” és „módosított” állapotúak lehetnek. Amint az az előző bekezdésben látható, az „nem követett” állapotú fájlok a munkakönyvtárban található összes olyan fájl, amely nem található meg a pillanatképben (új "lerakat" létrehozásakor).
A meglévő „tároló” klónozása ezzel szemben a letöltött fájlok alapállapotát „követi nyomon”. Ezért ezek a fájlok „módosíthatatlanok” is lehetnek, ha a letöltést követően nem szerkesztik őket, vagy „módosíthatók”, ha az utolsó elkötelezettség óta megváltoztak.
A fájl állapotának ellenőrzéséhez használja az 'status' parancsot:
Az alábbi kép a terminál képernyőképeit mutatja, ahol egy új projektet inicializáltak, fájlt adtak hozzá és létrehozták az első megbízást. A "status" paranccsal a terminál meghatározza, hogy nincs módosított fájl frissítésre. A zöld vonaltól kezdve, a fájl módosítása után, az 'status' parancs ismét végrehajtásra kerül.
2. ábra - Példa a Git fájl inicializálására, követésére és szerkesztésére az Ubuntu terminálon
Az újonnan módosított fájl most megjelenik a "Változatlanul végrehajtott változtatások" címsor alatt, ami azt jelenti, hogy a nyomon követett fájl megváltozott a munkafüzetben, de még nincs a szakaszban.
Ezért kétféleképpen lehet eljárni:
-
Frissítse a fájlt a szakaszban (meg kell ismételni a követési eljárást, azaz a 'git add' parancsra lesz szükség);
-
Dobja el a változtatásokat (a „git checkout <File_Path> használatával).
Tegyük fel, hogy az éppen szerkesztett fájlt a „git add” parancs futtatásával és a „git status” megismétlésével akartuk állapotba hozni.
3. ábra - A módosított fájlok állása az Ubuntu terminálon 18.04
A fájl ezután módosul, de készen áll az átadásra (zöld téglalap a 3. ábrán). Ha a kötelezettségvállalás előtt a fájlban további módosítás történik, és annak állapotát ellenőrzik, akkor mindkettőt „készen áll a készenléti fájlra”, és mint a még nem a szakaszban lévő fájlt (piros téglalap a 3. ábrán).
Ez akkor fordul elő, mert a szakaszban lévő fájl nem módosul (az a fájl lesz, amely lekötésre kerül, ha most végrehajtják a "kötelező" parancsot), míg a külső fájl éppen módosítva. A további módosítás elvégzéséhez ismét adjuk hozzá (kék téglalap a 3. ábrán).
A fájlok figyelmen kívül hagyása
Ha nem akarja, hogy bizonyos fájlok, például a „naplófájlok” automatikusan hozzáadódjanak, hozzon létre egy „.gitignore” fájlt a kizárni kívánt fájlok listájával.
Bizonyos típusú minták automatikus beillesztése, az összes figyelmen kívül hagyandó fájl felsorolása nélkül, tartalmazza az összes mappát és speciális karaktereket használ. A mintákra a következő szabályok vonatkoznak:
- Az üres sorokat vagy a "#" betűvel kezdődő sorokat automatikusan figyelmen kívül hagyják;
- A "/" perjel használható az almappa jelölésére;
- Használja a "!" Karakter a minta elutasítására;
- A globális minták felhasználhatók.
A globális minta egy szintaxis, amelyet karakterláncok egy sorának ábrázolására használnak. A leggyakoribbak a következők:
- a csillag (*), amely jelzi a karakterláncokat (gyakran egy adott kiterjesztés összes fájljának megjelölésére használnak);
- a kérdőjel (?), amely bármilyen karaktert jelöl, és szögletes zárójelben ([…]) a karakter- vagy számsor meghatározására.
A Commit megváltoztatása
Miután a fájlokat a szakaszba helyezte (a "git add" paranccsal), hajtsa végre a változtatásokat. Az elkötelezettség a szakasz területén mentett pillanatkép rögzítésére szolgál.
Bármi, ami nem kerül a szakaszra, nem lesz a kötelező, de természetesen a helyi mappában módosítva marad.
A legegyszerűbb módszer a következő parancs használatával:
Ezzel megnyílik a „git” állapotparancs utolsó kimenetét megjelenítő szövegszerkesztő az első sorral üresen: itt beírhatja az átadási üzenetet, hogy megfelelően jelezze, milyen változtatásokat hajt végre.
Most készítette el az első commitot! Az útmutató elkészítése előtt bemutatjuk a fájlok további eltávolítására vagy módosítására vonatkozó eljárásokat.
A fájlok eltávolítása
A Git fájl eltávolításához ne csak a nyomon követett fájlokból távolítsa el, hanem ismételje meg a kötelezettségvállalást a módosítások mentéséhez. Valójában, ha egyszerűen törli a fájlt a mappából, a kapott fájl nem a szakaszban jelenik meg.
A 'git rm' paranccsal, majd a fájl elérési útjával és nevével, a fájl eltávolítása folyamatban van, és a következő commit után teljesen eltűnik:
Ha már módosította és hozzáadta a fájlt az indexhez, az "-f" opció hozzáadásával kikényszerítheti annak eltávolítását:
Ha azonban csak a szakaszba tévesen beillesztett fájlt akar eltávolítani, miközben a lemezen tartja, akkor használhatja a "- cached" opciót:
Fájlok áthelyezése és átnevezése
Egy másik dolog, amit érdemes megtenni, a fájlok áthelyezése vagy átnevezése. Ez nem egy automatikus művelet, mivel a Git nem követi kifejezetten a fájlmozgások nyomon követését, azaz nem állnak elő metaadatok a "rename" opció nyomon követéséhez.
Ez a művelet az ismert parancsokkal hajtható végre, ha először megváltoztatja a nevet, eltávolítja az 'previous' fájlt (git rm) a Gitből, majd hozzáadja az 'new' (git add) fájlt.
Annak elkerülése érdekében, hogy az egyes átnevezésekhez / mozgatásokhoz ezt a parancs-sorozatot hajtsa végre, a Git saját, a "git mv" paranccsal rendelkezik, amely ugyanazt az eredményt adja, mint a fentebb felsorolt három egyszerre.
A teljes szintaxis az alábbiakban látható:
$ git mv <OldPath/OldName> <NewPath/NewName>
Ez a parancs pontosan ugyanazt az eredményt adja, mint a következő három:
$ mv <OldPath/OldName> <NewPath/NewName>
$ git rm <OldPath/OldName>
$ git add <NewPath/NewName>
Ezzel a fájl átnevezésre és / vagy áthelyezésre kerül és már a szakaszban készen áll a commitra.A művelet sikerének ellenőrzéséhez futtassa a 'git status' parancsot, amely kiadja a 'átnevezett' szakaszt a változások listájában, ahol az összes fájl, amely megváltoztatta a nevét vagy elérési útját, fel lesz sorolva. Minden fájlhoz adja meg az előző és az aktuális nevet / elérési utat is.