Naslovna » Osnove programiranja » Lokalni i udaljeni Git repozitorijum, grane, konflikti i Git workflow: Kako efikasno upravljati kodom?

Lokalni i udaljeni Git repozitorijum, grane, konflikti i Git workflow: Kako efikasno upravljati kodom?

Osnove programiranja Git repozitorijum Git workflow GitHub
git

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

  1. Otvorite konfliktne fajlove – Git označava konfliktne delove koda sa <<<<<<<, ======= i >>>>>>>.
  2. Ručno uredite kod – Odaberite verziju koja treba da ostane.
  3. 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! 🚀