
Git je standard u modernom razvoju softvera, omogućavajući programerima da efikasno upravljaju kodom, prate izmene i sarađuju u timovima. Bilo da razvijate samostalne projekte ili radite u velikim timovima, razumevanje lokalnog i udaljenog repozitorijuma, grana, rešavanja konflikata i Git workflow-a ključno je za produktivan rad.
Ova tema je deo drugog modula FTN Informatika jednogodišnjeg online školovanja, gde polaznici savladavaju principe verzionisanja koda, uspostavljanja repozitorijuma i efikasnog timskog rada pomoću Git-a. U ovom blog postu ćemo objasniti osnove rada sa Git-om i kako možete unaprediti svoje veštine u verzionisanju koda.
1. Razlika između lokalnog i udaljenog Git repozitorijuma
Pre nego što pređemo na naprednije koncepte, važno je razumeti osnovnu razliku između lokalnog i udaljenog repozitorijuma.
Lokalni repozitorijum
Kada inicijalizujete novi Git repozitorijum (git init
), on postoji samo na vašem računaru. Sve izmene, commit-ovi i grane prvo se kreiraju i čuvaju lokalno, dok ih eksplicitno ne pošaljete na udaljeni repozitorijum.
Udaljeni repozitorijum
Udaljeni repozitorijum (remote repository) je skladište koda koje se nalazi na Git serveru kao što su GitHub, GitLab ili Bitbucket. Služi kao centralno mesto za deljenje i sinhronizaciju koda između članova tima. Kada radite u timu, neophodno je povremeno preuzimati izmene (git pull
) i slati svoje izmene (git push
) u udaljeni repozitorijum kako bi svi članovi tima imali ažuriran kod.
Komande za rad sa udaljenim repozitorijumom:
git clone <URL> # Preuzimanje postojećeg repozitorijuma sa servera
git remote add origin <URL> # Povezivanje lokalnog repozitorijuma sa udaljenim
git push origin main # Slanje lokalnih izmena na udaljeni repozitorijum
git pull origin main # Preuzimanje ažuriranja iz udaljenog repozitorijuma
2. Rad sa granama (branches) u Git-u
Grane su ključni deo Git workflow-a jer omogućavaju programerima da rade na novim funkcionalnostima bez uticaja na glavni kod.
Zašto su grane važne?
- Omogućavaju paralelni rad na različitim funkcionalnostima.
- Pomažu u organizaciji i praćenju razvoja projekta.
- Omogućavaju lakše ispravljanje bug-ova i testiranje novih ideja.
Osnovne Git komande za rad sa granama:
git branch feature-x # Kreiranje nove grane feature-x
git checkout feature-x # Prebacivanje na granu feature-x
git switch feature-x # Alternativa za git checkout (novija verzija)
git merge feature-x # Spajanje grane feature-x u glavnu granu
git branch -d feature-x # Brisanje grane feature-x nakon spajanja
Tipično, projekti koriste glavnu granu (main
ili master
) za stabilnu verziju koda, dok se dodatne funkcionalnosti razvijaju u posebnim granama.
3. Konflikti u Git-u i kako ih rešiti
Git konflikti nastaju kada dve različite izmene pokušaju da ažuriraju isti deo koda. Ovo se često dešava pri merge
operacijama, kada dva programera menjaju istu datoteku.
Kako prepoznati Git konflikt?
Kada izvršite git merge
ili git pull
, Git će automatski pokušati da spoji izmene. Ako postoji konflikt, dobićete poruku poput:
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Rešavanje konflikta u Git-u
- Otvorite konfliktne fajlove – Git označava konfliktne delove koda sa
<<<<<<<
,=======
i>>>>>>>
. - Ručno uredite kod – Odaberite verziju koja treba da ostane.
- Dodajte ispravljene fajlove
git add index.html
Nakon rešavanja konflikta, završite merge sa:
git commit -m "Rešen konflikt u index.html"
Da biste izbegli konflikte, preporučuje se često preuzimanje najnovijih izmena iz udaljenog repozitorijuma (git pull origin main
) pre nego što započnete novi rad.
4. Git workflow: Organizacija rada u timovima
Postoji nekoliko modela rada u Git-u, ali najčešće korišćeni su:
1. Feature Branch Workflow
Svaka nova funkcionalnost se razvija u zasebnoj grani i spaja sa main
nakon završetka:
git checkout -b new-feature
# Rad na kodu...
git commit -m "Dodata nova funkcionalnost"
git push origin new-feature
Ova metoda omogućava čistiju istoriju koda.
2. Git Flow
Popularan model koji koristi razvojnu (develop
) granu za aktivni razvoj, dok main
ostaje stabilna. Grane za funkcionalnosti (feature
), popravke (hotfix
) i izdavanja (release
) se koriste za bolju organizaciju.
3. Forking Workflow
Koristi se kod open-source projekata. Programeri prave kopiju repozitorijuma, rade izmene i prave pull request kako bi predložili promene originalnom projektu.
Zaključak
Razumevanje lokalnih i udaljenih repozitorijuma, grananja, konflikata i Git workflow-a ključno je za efikasan rad na softverskim projektima. Korišćenjem pravih strategija, možete izbeći probleme sa verzionisanjem koda i poboljšati timsku saradnju.
Ova tema je deo drugog modula FTN Informatika jednogodišnjeg online školovanja, gde polaznici kroz praktične primere i vežbe savladavaju rad sa Git-om. Ako želite da unapredite svoje programerske veštine i pripremite se za timski rad u IT industriji, naš program pruža sveobuhvatno znanje potrebno za uspešnu karijeru.
💡 Prijavite se na FTN Informatika online školovanje i savladajte Git kao profesionalac! 🚀