LAKI PINGVINI<>
112012<><>

Git 1.7.12.1

Alat za distribuiranu kontrolu verzije

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.

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.

Miloš DUKIĆ

 
Qupzilla 1.3.5
BusyBox 1.20.2
Git 1.7.12.1
Šta mislite o ovom tekstu?
Task Coach 1.3.18
TIPP10 2.1.0

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
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera