Hatékony verziókezelés gittel

DevOps
Nehézség: Közép
Tanfolyam hossza: 3 nap

Repository és branch, commit, push, pull, haladó technikák

CÉLOK
A verziókezelő eszközök használata manapság elengedhetetlen. A központi repository több feladatot is ellát a fejlesztés során: segíti a fejlesztők közti munkamegosztást, biztonsági mentésként szolgál, ellátja a hozzáférés-vezérlést, illetve segíti a különböző verziók, elágazások egyidejű karbantartását is. A verziókezelőben minden korábbi változtatás megtalálható, így mindig visszakövethető, hogy ki mit változtatott a kódon, pl. egy bug esetén ki követte el a hibát. Ez kétségkívül hatalmas előny lehet, de a történet nem lesz áttekinthető, ha a verziókezelést a fejlesztők nem megfelelően végzik, pl. véletlen eszközölt változtatásokat és ezek visszavonását eredményezheti. Szintén kellemetlen lehet, ha a tapasztalat hiánya miatt a verziókezelő eszköz használata lassítja a fejlesztők munkáját, mintsem hatékonyabbá tenné. A tanfolyamot elvégzett résztvevők azonban jól eligazodnak a git verziókezelő használatában, ezért velük ilyen nem fordulhat elő.

TEMATIKA

• A verziókezelés alapjai
– Szöveges fájlok változásainak kezelése a diff és patch eszközökkel
– Alapfogalmak: repository, commit, working copy, branch
– A verziókezelés előnyei és kihívásai
– A verziókezelő rendszerek típusai: zárolási módok, centralizált és elosztott verziókezelők

• A git verziókezelő használata
– A git főbb jellemzői
– Konfigurálás (git config)
– Új repository létrehozása
– Staging, diff, add, reset
– Változások commitolása
– Fájlok átnevezése
– Commitolt változások visszavonása
– Történet megtekintése
– A .gitignore fájl

• Munka távoli repository-kkal
– Fork és clone
– Lokális repository frissítése távolról (pull)
– Távoli repository frissítése lokális változásokkal (push)
– Párhuzamos munka összefésülése (merge)
– Konfliktusok feloldása
– Cherry-picking

• Branchek használata
– A branch fogalma
– Branchtípusok felhasználási cél szerint: main, development, feature
– Branchelési stratégiák: main only, development isolation, release isolation, development and release isolation, feature isolation, code promotion
– Branch létrehozása, branchek közti váltás
– Branchek összehasonlítása
– Szinkronizáció branchek közt (merge, rebase)
– Stashing, mint alternatíva

• További hasznos git praktikák
– Konkrét verzió visszakeresése
– Hibakeresés bisecttel
– Squash
– Blame