LAKI PINGVINI
Git 1.7.12.1
Miloš DUKIĆ
1. novembar 2012.

Zamislite da radite na projektu koji dnevno od programera dobija po više stotina zakrpa i izmena koda. Održavanje konzistentnosti teško je zamisliti bez nekog alata koji bi programerima pomogao da svoje projekte održe stabilnim. U tu svrhu pojavili su se alati za distribuiranu kontrolu verzije, koji omogućavaju lako održavanje projekata na kojima radi više ljudi. Predstavljamo vam jedno od možda najpopularnijih rešenja ove vrste.

Alat za distribuiranu kontrolu verzije

Git je servis za distribuiranu kontrolu verzije i upravljanje izvornim kodom, koji koriste programeri prilikom razvoja softvera. Pre pojave Gita, najpopularniji servis zvao se BitKeeper. Ljudi koji su stajali iza ovog projekta odlučili su da povuku slobodnu upotrebu ovog servisa. U to vreme Linux kernel je bio hostovan na BitKeeperu, a odluka nije uopšte odgovarala Torvaldsu i ostalim programerima koji su održavali kernel. Iz tog razloga, Linus Torvalds je u maju 2005. godine počeo sa razvojem sopstvenog alata za distribuiranu kontrolu.

Git je zamišljen tako da bude low-level sistem koji bi programerima omogućio da za njega prave grafičke front-endove. Njegove karakteristike su distribuiran razvoj aplikacija (svaki programer dobija lokalnu kopiju razvojne istorije izvornog koda), kompatibilnost sa postojećim protokolima i sistemima (kao što su HTTP, FTP, rsync), kriptografska autentifikacija, efikasno upravljanje većim projektima. Git radi po principu repozitorijuma koji sadrži izvorni kôd projekta. Po kreiranju repozitorijuma, on se sastoji od jedne grane (branch) koja se zove master. Vlasnik repozitorijuma može da kreira dodatne grane. Zašto bi to radio? Ukoliko bi programer koristio samo jednu granu, ona bi bila nestabilna i korisnici bi mogli da preuzmu nestabilnu verziju softvera koji sadrži neku grešku. Kreiranjem dodatne grane (test, dev) rad na testiranju vrši se u toj grani, dok master grana ostaje stabilna i sadrži stabilnu verziju softvera. Za spajanje dve grane koristi se komanda merge. To je način za dostavljanje koda iz jedne grane u drugu. Sve što je potrebno jeste pozicionirati se u granu sa kojom želimo da se spojimo i pozovemo komandu. Kod Gita postoje tri načina za spajanje: resolve, recursive i octopus. Resolve koristi tradicionalni three-way merge. Ovaj načina spajanja funkcioniše na sledeći način. Ako imamo fajl A od kojeg nastaju dva fajla, B i C, koji se razlikuju od originalnog fajla, spajanjem ova dva fajla nastaje fajl D.

Git postoji u verzijama za Linux, Mac OS X i Windows. Nalazi se u riznicama svih distribucija, pa je potrebno samo uposliti menadžer paketa distribucije koju koristite. Moguće je i preuzimanje izvornog koda sa sajta projekta.

Git koristi jednostavnu sintaksu za rad sa repozitorijumima. Korisnik može da dodaje nove ili menja postojeće fajlove, primenjuje zakrpe, izlistava ili briše grane.

Prvo što treba da uradimo jeste da se pozicioniramo u radni direktorijum projekta i da inicijalizujemo Git. To se radi komandom

git init

Ova komanda služi da kreira prazan direktorijum Git ili da reinicijalizuje već postojeći. Zatim biramo koje ćemo fajlove da dodamo u repozitorijum i dodajemo ih komandama

git add FILE1

git commit -m ’neki tekst’

git push origin master

Poslednjom komandom načinjene su izmene u repozitorijumu. FILE1 je dodat u repozitorijum, a ukoliko je taj fajl već postojao, zamenjen je novom verzijom.

Za kloniranje repozitorijuma tu je komanda clone. Ova komanda koristi se ukoliko programer želi da iskopira već postojeći Git repozitorijum, kojem želi na neki način da doprinese. Sintaksa komande veoma je jednostavna

git clone https://github.com/username/projekt.git

Za dodavanje novih grana koristimo komandu branch. Grane se mogu kreirati, brisati i izlistavati. Takođe, prilikom rada moguće je prebacivati se iz jedne grane u drugu.

git checkout -b development

git checkout development

git push origin development

git branch -v

U ovom primeru kreirali smo granu development, prebacili se sa master grane na nju, napravili neke izmene i izlistali sve grane koje se nalaze u repozitorijumu. Zvezdicom (*) biće označena grana u kojoj se trenutno nalazimo.

Pomenućemo još dve komande - fetch i pull. Fetch se sinhronizuje sa drugim repozitorijumom i povlači sve fajlove koji se ne nalaze u lokalnom repozitorijumu. Komanda pull podeljena je na dva dela. Prvo radi fetch repozitorijuma i zatim pokušava da uradi merge na grani u kojoj se korisnik trenutno nalazi.

Pomenućemo i web sajtove koji se bave hostovanjem izvornog koda. Ponuda je raznovrsna. Tu su SourceForge, Google Code, Bitbucket i verovatno najpopularniji GitHub. Korisnik treba samo da se registruje i da obavi neka inicijalna podešavanja. Nakon generisanja SSH ključa, korisnik može da dodaje izvorni kôd u repozitorujume. Pored besplatnog hostovanja, GitHub ima i opciju plaćanja. U zavisnosti od paketa, moguće je kreiranje određenog broja privatnih repozitorijuma, kreiranje organizacija, neograničen broj timova.

Git je veoma obiman alat i opis svih njegovih mogućnosti zahtevao bi mnogo više prostora. Zato smo pokušali da pređemo osnovne stvari, a na vama je da dublje zaronite u vode Gita.


Otkud naziv Git?
Git na engleskom jeziku označava glupu ili neprijatnu osobu. Linus Torvalds izjavio je da je on egocentrik i da sve svoje projekte naziva po sebi.
Platforma:
GNU/Linux, Windows, Mac OS X
Licenca:
GNU GPLv2
Veličina:
2,7 MB source; 17 MB na HD-u
Cena:
program je besplatan
Adresa:
www .git -scm .com
PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
MAJ 2025
Microsoft Majorana 1
Kvantna topologija
Topološki kvantni računar otporan je na uticaj kosmičkog zračenja, ali i dalje mora da se ohladi skoro do apsolutne nule...
AMD Ryzen 9 9950X3D
Jedan, da svima vlada
Ako vam je potreban najbrži procesor, i za igranje, i za ozbiljnije zadatke, Ryzen 9 9950X3D nema konkurenciju...
Gigabyte GeForce RTX 5070 Ti Aero OC 16G i GeForce RTX 5070 Ti Gaming OC 16G
I za kreativce, i za igrače
Sasvim sposoban da se nosi sa 4K rezolucijom u svim igrama i pruži sasvim pristojne performanse, dok u 1440p apsolutno blista...
Asus ROG Strix Scar 18 (G835LX)
Fantastična zver i kako je kupiti (3)
Laptop namenjen onima koji „ne žale pare” da imaju ono što je trenutno najbolje i najbrže...
Deset najboljih Microsoft PowerToys alatki
Najbolji od najboljih
PowerToys Run je alatka kojoj treba da se okrenete ukoliko vam sistemska rutina za pretragu ne odgovara...
Apple iPhone 16e
Malo muzike za mnogo para
Problem nije samo cena i slabiji grafički podsistem, već i trajanje baterije...
Cemu 2.6
Wii U emulacija
Cemu omogućava pokretanje i privođenje kraju oko 57 procenata igara „napisanih” za Wii U...
.rs: nove usluge eUprave - novi propisi - najava 5G
Mnogo eNoviteta
U novom esDnevniku roditelji će dobijati notifikacije za ocene i izostanke...
Trgovinski rat Istoka i Zapada
Velika igra, nesagledive posledice
Kao u igri „kukavice”, dve supersile kreću se velikom brzinom jedna prema drugoj, izazivajući drugu da prva skrene...
Blue Prince
Jedinstveni dijamant i jedna od najoriginalnijih igara u poslednjih nekoliko godina...
Tempest Rising
Skupa i ambiciozna fotokopija legendarnog RTS klasika Command & Conquer...
South of Midnight
Magična igra koja izgleda kao živa bajka, animirana u stilu filmskog serijala „Spiderverse”...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama