A git verziókezelő rendszer alapjai a kezdőknek

Nemrég megtettem, hogy megtanítsam a Git-nek azokat a munkatársaim alapjait, akik csak a programozást tanulmányozzák és megpróbálnak dolgozni. A kezdők számára készült internetes cikkek áttekintése során rájöttem, hogy a legtöbbjük arról szól, hogyan használhatjuk a Git konzolt vagy annak szükségességét és előnyeit más hasonló rendszerekkel szemben. Az újonc általában nem nagyon erős mindezen kérdésekben. Hiszem, hogy először, és tudom, hogy mindez nem szükséges. Végtére is használhatod a Git-ot a projektjeidhez, és megtanulhatod az összes varázsát a tanulás programozásával együtt. De, nagyon ajánlom, hogy ezt a cikket bevezető cikkként és a jövőbeli Git-tanulmányban vegye be részletesebben.







Egy kis terv arról, hogy mit fogunk tenni:

  1. Létrehoz egy adattárat a Bitbucket-on.
  2. A tároló klónozása (hozzáadva a SmartGit-hez).
  3. A bizottságok létrehozása.
  4. A módosítások visszavonása.
  5. Ágazatok létrehozása.
  6. A fióktelepek távoli tárhelyre történő áthelyezése (ágak elosztása távoli kiszolgálóra).
  7. Az ágak összefonódása.

A tárolót a SmartGit segítségével döntenénk. Vessünk egy linket az adattárunkra:

Most indítsa el a SmartGit programot, válassza ki a "Project" - "Clone" (vagy Ctrl + Alt + O) opciót, és töltse ki a szükséges mezőket:

A rendszer a Bitbucket felhasználónevét és jelszavát fogja kérni:

A következő ablakban két lehetőség van a "Submodulok beillesztése" és a "Minden fej és címke lekérése" klónozásra. A Git lehetővé teszi az egyedi alkalmazási modulok tárolását különböző tárolókban. Ha bejelöli a "Submodules beillesztése" opciót - a SmartGit automatikusan betölti az összes modulot. Ha az "Összes vezető és címke lekérése" opciót választja, a SmartGit a projektmappa letöltése után letölti az összes fiókot és címkét ehhez az adattárhoz:

Továbbá nagyon egyszerű - meg kell választani egy olyan könyvtárat, ahol a repository klónozható:

A következő ablak a SmartGit projektjének neve:

Ha üres tárhelyet klónoztál (mint ebben a cikkben), akkor a következő ablak jelenik meg:

Tovább mennünk. Hozzon létre egy parancsot. Mi az a comit? Ez a módosításokat rögzíti. Minden üstökös "emlékszik" arra, amit megváltozott, és bármikor visszaadhatja a fájlok korábbi állapotát. Minden lényeges változás után tanácsot adok Önnek, például egy hibát egy függvényben rögzítek, komitálással. Kötés létrehozásához meg kell változtatnia valamit a projektben. Adjon hozzá néhány fájlt a projekt mappához:

Most láthatja a SmartGit projektünkben végrehajtott változtatásokat:

Válassza ki mindkét fájlt, és kattintson először a "Stage", majd a "Commit" gombra. Miért kell megnyomni a "Stage" -t? A "Stage" gomb hozzáadja a kijelölt fájlokat az aktuális indexhez. Ha két fájlt szeretne létrehozni, és megváltoztathatja, mondjuk 5, csak válassza ki ezt a két fájlt, nyomja meg a "Stage" gombot, amely hozzáadja őket az indexhez és a "Commit" után. Így csak a kiválasztott két fájl fog beleesni a parancssorba.

Ezután kattintson a "Commit" gombra. Commit gomb Push "ugyanazt teszi, hanem a távoli tárolóba (esetünkben Bitbucket) történő változtatásokat is. Ne csináld ezt még. Nyomással tovább fogunk haladni. Az alábbiakban az ágak listájában megjelenik egy helyi "mester" ág. Ez az alkalmazáskód fő ágát jelenti. Melyek az ágak, később elmondom. És most meg fogunk csinálni valamit a projektünkkel, majd visszahúzzuk a változásokat. Törölni fogom a readme.txt fájlt, szerkeszthetem az index.php fájlt, és hozzáadhatok egy új confic.cfg fájlt:







És most visszavonjuk a változást a bizottság után. Menjünk a Naplóba:

Válassza ki a visszafordítani kívánt üstököséget, és nyomja meg a "Reset" gombot:

A következő ablakban meg kell adnunk, hogy melyik "Reset" -et szeretnénk:

Megmagyarázom. Ne felejtsük el, hogy amikor létrehozunk egy comitot, először hozzáadjuk a fájlokat az indexhez (stage). Ez lehetővé teszi az indexelt fájlok titkosítását. A Soft reset csak bizottságokat állít vissza. Az index és a fizikai változtatások a fájlokban maradnak. A vegyes visszaállítás ugyanúgy működik, mint a puha, de még mindig eltávolítja a fájlok indexét. A hard reset eltávolítja az elkötelezettségeket, indexeket és fizikai változásokat a fájlokban. Óvatosan használja a hard reset-et, ami nem véletlenül eltávolítja a feleslegeseket.

Kifejezett erőrehoztam az egyértelműséget:

Amint láthatjuk, a fájlok összes változása eltűnt, vagy inkább mindegyik visszatért az első comitum állapotába.

Most egy kicsit az ágak létrehozásáról. Miért van szükség ezekre? Az ág lehetővé teszi a kód aktuális állapotának és kísérletének mentését. Például írsz egy új modult. Ez logikus, hogy ezt külön ágban végezzük. A főnök felhívja és elmondja, hogy a projekt hibájában és sürgősen meg kell javítania, de nem adta hozzá a modult. Hogyan tölthetek fel nem dolgozó fájlokat? Csak kapcsolja be a munkaterületet a modul nélkül, javítsa meg a hibát és töltse fel a fájlokat a kiszolgálóra. És amikor a "veszély" elhaladt - továbbra is dolgozik a modulon. És ez egyike az ágak előnyeinek.

Próbáljuk meg létrehozni a saját ágat. Már van egy, mester. Automatikusan létrejön (ha nem érhető el) az első elkövetés végrehajtásakor. Hozzon létre egy másik fiókot, és hívja "new_future1". Nyomja meg az F7 billentyűt vagy kattintson a jobb gombbal a Fiókok fül alján található "Helyi ágak" elemre, és válassza a legördülő listából a "Fiók hozzáadása" lehetőséget:

Kattintson a "Fiók hozzáadása" Switch], amely azonnal átállna a létrehozott ágra. Most létrehozhatsz új elemeket, fájlokat cserélhetsz, és ne aggódj. Mivel mindig van egy ág mestere, ahová visszatérhetsz. Amikor egy ágat váltasz, a Git a helyi fájlokat átmásolja az adott ágon található fájlokra. Ez azt jelenti, hogy ha létrehoz egy új ágat, változtas valamit az index.php fájlban, majd váltson át a mesterfiókra, majd minden módosítást törölni fog. Ha visszatér a létrehozott fiókhoz, a változások visszatérnek.

Eddig helyileg dolgoztunk. Próbáljuk megtölteni munkánkat a szerveren. Hozzunk létre valamilyen komitot az új_future1 ágban. Ha az adattár üres és üres, mivel néhány évvel ezelőtt létrehoztuk és nem töltöttünk fel semmit a kiszolgálóra, a Bitbucket alapvetően hozzárendeli azt az ágat, amelyet először töltettünk be. Ezért váltson át a "master" ágra, és kattintson a "Push" gombra:

Ezután a SmartGit felkéri Önt, hogy állítsa be az együttes nyomkövetést. A követés lehetővé teszi, hogy automatikusan frissítse az adott ágakat a kódfrissítések letöltésekor vagy letöltésekor. Ezért kattintson a "Konfigurálás" gombra:

Most váltson másik ágra, és tegye meg ugyanezt. Menjünk a Bitbucket-be, és nézzük meg, mi változott a "Vevők" részben:

Amint látod, mindent a távoli kiszolgálóhoz kap.

Most átveszi az ágakat. Miért szükséges ez? Vessünk ugyanazt a példát a modulra. Előbb vagy utóbb hozzá fogod adni, és hozzá kell adnod a modulkódot az alkalmazás fő kódjához. Elég, ha egyesíti az ágakat. Ehhez lépjen a fiókra, ahol meg szeretné egyesíteni a kódot. A mi esetünkben ez egy mester. Ezután jobb gombbal kattintson arra a fióktelepre, amellyel meg szeretné egyesíteni a kódot, és válassza a "Merge" (Merge) lehetőséget:

A következő SmartGit megkérdezi, hogy pontosan hogyan kell összeolvasztani az ágakat. Válassza a "Merge-Commit létrehozása" elemet.

És most a mesterfiók változásait a kiszolgálóra kell nyomni. Töltse ki a változást a kiszolgálóhoz ugyanúgy, ahogy előtte kaptuk:

Kapcsolódó hozzászólások: