Sziasztok!
Legutóbbi alkalommal installáltuk a git-et, így ebben a bejegyzésben szeretném bemutatni azt, hogy hogyan lehet egyszemélyes fejlesztéshez tartozó kódbázist git verziókezelő segítségével karbantartani. Mindössze olyan alap dolgokat csinálunk, hogy hogyan lehet létrehozni egy lokális repository-t, abban hogyan lehet fájlokat kezelni: hozzáadni, módosítani, visszavonni és törölni.
Konfigurálás
Jelenleg csak lokális környezetben vagyunk, de előbb-utóbb másokkal egy csapatban fogunk játszani. Ezért nagyon fontos, hogy már most megtanuljunk néhány dolgot. Amikor csapatmunkában dolgozunk, elvárt az, hogy a fejlesztő neve, és email címe helyesen meg legyen adva. Ugyanis vannak olyan eszközök, amelyek csak bizonyos felhasználóktól kiadott commitokat fogadnak el, tehát ha nincs a git konfigurálva, vagy nem helyesen van, akkor ezek az eszközök letiltanak téged, és nem tudod megosztani a fejlesztésed. Ennek beállítása nem túl bonyolult, globális beállítással, az összes git által kezelt projekteden, ugyanaz lesz a felhasználóneved és emailed (a következő commitnál majd megnézzük, hogy mire van ez hatással):
$ git config --global user.name "Attila Budai"
$ git config --global user.email attila.budai@zerotohero.hu
Repository létrehozás
Első lépésként hozzunk létre egy teszt könyvtárat, amiben dolgozni fogunk:
mkdir teszt
cd teszt
Hozzuk létre a Main.java fájlt, ebbe a könyvtárba.
touch Main.java
Jelen pillanatban, elkezdtük valaminek a fejlesztését, tehát ideje verziókezelnünk amink van. (A valóságban is pont így teszünk, létrehozzuk a projekt skeletonját, és egyből megy git-be. Aztán amikor egyre több ember dolgozik rajta, akkor valami központi repository-ból ki tudjuk nyerni a verziókat… no de ne rohanjunk ennyire előre, nekünk még csak lokális repository-nk lesz)
Úgy lehet lokális repo-t létrehozni, ha kiadjuk a következő parancsot:
git init
ekkor elkészül egy .git mappa, ami tartalmazni fogja a fájlok verzióit valamilyen formában.
Ezzel még a Main.java fájl még nem verziókezelt, ezt meg is tudjuk nézni:
git status
Fájlok hozzáadása
Látjuk, hogy a Main.java untracked állapotú fájl. Gondoskodjunk róla, hogy a git verziókezelő kezelje ezt a fájlt:
git add Main.java # átállítjuk a státuszát a git környezetben értelmezettre.
git commit -m “Main.java létrehozva” # hozzáadjuk a git környezethez.
( A –m kapcsoló utáni szövegrész nem más, mint a commit message. Ez az üzenet azért fontos, hogy lássuk mit csináltunk az adott kódbázissal. Amikor commitolunk valamit, akkor fontos, hogy egy jól körülhatárolt kis egység legyen, amit meg is tudunk nevezni. Ugyanis ez segít nekünk, és a csapat többi tagjának beazonosítani a commithoz tartozó fejlesztéseket, a releaserekről nem is beszélve, amikor meg kell találniuk, hogy egy adott release-be mely feature-k(commitok) kerüljenek bele.) Ettől a pillanattól kezdve, a git ezen a fájlon történő változásokat érzékeli. Ha megnézzük a
git log
eredményét, akkor látni fogjuk az első sikeres commitunkat, és ha már itt vagyunk, ellenőrizzük, hogy a korábban tett konfigurációs beállítások helyesek-e?
Módosítás
Implementáljuk a Main.java fájlt:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Ezután, pedig nézzük meg, hogy a
git status
mit mond:
Changes not staged for commit:
modified: Main.java
Tehát most az az eset van, amikor a verziókezelő által commitált verzió nem egyezik meg, a fájlrendszeren található verzióval. Ilyenkor a továbblépéshez két lehetőségünk van: vagy visszavonjuk a változtatást a Main.java fájlon, vagy elfogadjuk, és commitoljuk. Ha visszavonnánk, akkor az alábbi parancsot kellene kiadnunk:
git reset --hard
Itt fontos, hogy minden fájl, ami módosult, és nem commitoltunk be, el fog veszni. Azok a fájlok, amelyeket nem verziókezelünk, azokkal nem fog semmi történni, ugyanis a git nem tud róluk.
Ha elfogadnánk a módosítást (az implementációt), akkor pedig a következőeket adnánk ki:
git add Main.java
git commit -m”Main.java implementálva”
Szerintem fogadjuk el az implementációt, és adjuk ki az utóbbi utasításokat, ugyanis elég szépen sikerült a HelloWorld-t megvalósítani. :)
Törlés
Ha egy fájlt hozzáadtunk a repositoryhoz, de mégsem szeretnénk verziókezelni, akkor a következő parancs kiadásával kivehetjük:
git rm --cached Main.java
git commit -m”Main.java eltávolítva”
Ha pedig a Main.java fájlt is szeretnénk kitörölni, akkor
git rm Main.java
git commit -m”Main.java törölve”
Itt fontos azt látnunk, hogy ha egy fájl verziókezelve volt, és úgy döntünk, hogy kitöröljük azt a fájlrendszerről, az még nem jelenti azt, hogy ezeket a fájlokat ne tudnánk visszaállítani. Ugyanis ha egy fájl egyszer már verziókezelve volt, akkor azok a verziók visszakereshetőek, és ezen verziókból vissza is állíthatóak. Pontosan úgy, mint amikor módosítunk valamit (A törlés is egyfajta módosítás). Pontosan ezért is verziókezeljük a fájljainkat, hogy a korábbi verziókat vissza tudjuk keresni. Aztán, hogy mi minden másért is használjuk, az később ki fog derülni ;-)
