Tartalomjegyzék
A git hatékony használata
- Szerző: Sallai András
- Copyright © 2020, Sallai András
- Szerkesztve: 2020, 2022, 2023
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Előfeltevések
Négy ember fog dolgozni a projekten:
- János – projekt vezető
- Mari – fejlesztő
- Kati – fejlesztő
- Béla – fejlesztő
Fejlesztési folyamat
Kezdésnek, a master ágból létrehozunk egy release vagy egy dev nevű ágat. A fejlesztők ebből ágaztatják el saját munkájukat.
A fejlesztő a következő feladattípusokból választhat:
- feature
- enhance
- cleanup
- refactor
- fix – javítás
- hotfix – sürgős javítás
Ezeket szerepeltetjük az ág nevében, de hozzáadjuk az aktuális munkát leíró nevet is. A következő két ábrán ennek két példáját láthatjuk.
Ugyanaz más nevekkel:
Master branch
- A master branch-be senki nem ír kódot.
- Ez csak egy másolat arról a kódról, ami termékként ki van adva.
- A projekt vezető sem ír a master branchbe.
- Mindenki máshol írja az aktuális kódot.
Release branch
- A master branch-ből készítünk egy release branch-et.
- Minden kód itt lesz.
- A release branch-ben a release csak egy prefix, amit release/ formában használunk.
- Legyen példul release/triangle
- Előfordulhat, hogy azonos kódbázison több projekt is fut. Ezért használjuk release/ prefixumot
Funkció branch
- Az alkalmazásba épített minden szolgáltatás egy funkcióként van megvalósítva.
- A funkció branch olyan mint a többi, de feature/ formában használjuk.
- János megkéri Bélát,
- hozzon létre egy osztályt, ami képes egy háromszög adatait tárolni.
- feature/store
- János megkéri Marit,
- hozzon létre egy Triangle osztályt, amely kiszámolja egy háromszög kerületét.
- feature/triangle
- János megkéri Katit,
- írjon tesztet, amely Béla és Mari osztályához.
- feature/test
- Béla befejezte a feature/store-t, akkor elküldi a kódját a release/triangle branch-be.
- Béla pull request kérést intéz.
Pull request
A pull request fogalmat a github webes felületén vezették be.
- A Pull request nem tévesztendő össze a git pull paranccsal.
- A fejlesztő nem tudja közvetlenül a kiadási ágba küldeni a kódot.
- A műszaki vezetőnek (vezető fejlesztő) felül kell vizsgálnia a kódot, mielőtt a release ágba kerül.
- A technikai ellenőrzés után, a műszaki vezető beolvasztja a kódot a release ágba.
- Ha minden funkció kész, akkor összeolvasztásra kerülnek, majd mehet a master ágba.
Kezdés
Készítsünk egy állományt kezdésnek:
touch main.c
Ha az adott gépen nincs touch parancs, bármivel létrehozhatjuk az állományt.
Készítsük el a git tárolót és a kezdő commitot.
git init git add main.c git commit -m "Kezdés"
A master ágban minimum egy commit-nak lennie kell, mielőtt létrehozunk egy új branchet.
Release ág
Hozzuk létre a release ágat, majd álljunk át.
git branch release/triangle git checkout release/triangle
Hozzunk létre egy kezdő állományt és commitot:
touch store.c git add store.c git commit -m "A store.c létrehozva"
Feature ág
git branch feature/store git checkout feature/store
nano store.c git add store.c git commit -m 'A store() függvény kész'