Git Basics

Git Basics


Osnove Gita i planiranja projekta

🔍 Što je Git? • Distribuirani sustav za kontrolu verzija • Omogućuje praćenje promjena u datotekama tijekom vremena • Podržava suradnju, sigurnost, reviziju, grananje i spajanje • Git ≠ GitHub / GitLab / BitBucket (to su hostane platforme za Git repozitorije)

⸻

Osnovni pojmovi

Repozitorij (Repo) • Direktorij koji sadrži sve datoteke i povijest projekta.

Remote Repozitorij • Udaljena verzija repozitorija pohranjena na poslužitelju (npr. GitHub).

Commit • Zapis stanja repozitorija u određenom trenutku. • Sadrži ID, autora, vrijeme i opis promjena.

Staging • “Čekaonica” za promjene koje će biti uključene u commit.

Push / Pull / Stash • Push – slanje commitova na remote. • Pull – preuzimanje promjena s remote repozitorija. • Stash – privremeno spremanje nedovršenih promjena.

⸻

Rad s repozitorijem (CLI)

Naredba Opis git init Stvara novi repozitorij git clone Klonira postojeći repozitorij git status Prikazuje stanje radnog direktorija git add Dodaje promjene u staging git commit -m "poruka" Sprema promjene git push Prenosi commitove na remote git pull Preuzima i spaja promjene s remote repozitorija

⸻

Rad s GUI-jem

• Git podržan u IDE-ovima: VS, VS Code, JetBrains, GitHub Desktop • CLI pruža fleksibilnost i kontrolu. • GUI je intuitivniji, ali ograničen na osnovne operacije.

⸻

Commit Messages

Zašto su bitne: • Pomažu kod praćenja promjena i otkrivanja bugova. • Olakšavaju povratak na prethodna stabilna stanja.

Najbolje prakse: • Piši kratko i jasno, u imperativu (npr. “Add login form”). • Koristi engleski jezik. • Više manjih commitova > jedan veliki.

⸻

Kolaboracija i grane

Pojmovi: • Branch (grana) – paralelni razvoj bez utjecaja na main. • Merge – spajanje promjena iz različitih grana. • Fetch – preuzima promjene bez spajanja. • Revert – poništava promjene prethodnog commita. • Tag – označava važne točke (npr. verzije).

Zašto koristiti grane: • Izoliran razvoj novih značajki. • Stabilnost glavne verzije. • Lakši oporavak koda pri eksperimentima.

⸻

Branch naredbe

Naredba Opis git branch Kreira novu granu git branch -a Prikazuje sve grane git branch -d Briše granu git checkout Prebacuje na drugu granu git switch Novija verzija naredbe za promjenu grane

HEAD – pokazivač na trenutnu aktivnu granu.

⸻

Merge i konflikti

• Konflikti nastaju kad se promjene u granama preklapaju. • Rješavaju se pomoću editora (npr. VS Code). • Nakon rješavanja → commit završava merge.

⸻

Dodatne naredbe

Naredba Opis git fetch Preuzima promjene bez spajanja git log Prikazuje povijest commitova git diff Uspoređuje promjene u datotekama

⸻

Zadaci za vjeĹľbu

  1. Kreirati repozitorij na GitHubu. 2. Klonirati lokalno. 3. Napraviti granu feature-{ime-prezime}-bio. 4. Dodati direktorij i datoteku ja.txt. 5. Napraviti nekoliko commitova. 6. Napraviti drugu granu feature-{ime-prezime}-rwt. 7. Dodati datoteku projekt.txt s opisom projekta. 8. Spojiti (merge) grane u main. 9. Pushati sve promjene na GitHub.

⸻

ZakljuÄŤak

Git omogućuje: • Sigurnu i transparentnu kontrolu verzija • Kolaboraciju između više članova tima • Brz razvoj i vraćanje na stabilne verzije