Git – sistem za verzionisanje

Git sistem za verzionisanje je razvio lično Linux Torvalds, pošto je programerima koji su radili na razvoju Linux kernela, trebao adekvatan sistem za verzionisanje. Zbog specifičnosti zahteva, nijedan od postojećih sitema nije u potpunosti zadovoljavao njihove potrebe, pa je doneta odluka za kreiranje svog sistema za verzionisanje. Najpribližniji njihovim potrebama bili su BitKeeper, koji je vlasnički softver i Monoten koji je razvijen pod GNU General Public licencom, ali nije zadovoljavao po pitanju performansi.

Brzina, jednostavan dizajn i mogućnost konkurentnog rada na velikim projektima su bili najbitniji zahtevi, koje su postavili pred sebe, kao i jedan vrlo neobičan zahtev – da novi sistem bude antagonizam postojećeg CVS sistema, koji im je bio anti uzor. Tako je prva verzija izašla aprila 2005 godine. Git sistem je razvijen je pod GNU General Public 2 licencom i više detalja o istorijatu možete pronaći na adresi http://en.wikipedia.org/wiki/Git_(software)

Sistem za verzionisanje služi da beleži kompletnu istoriju nad grupom fajlova, od momenta kreiranja pa do finalne, aktuelne verzije, uz mogućnost povraćaja željenje verzije fajla u bilo kom momentu. Namenski fajlovi su grupisani po projektima (negde ćete naići na izraz repozitorija).

slika2

Sistemi za verzionisanje obezbeđuju centralizaciju podataka, omogućuju lakšu organizacija posla, pospešuju produktivnost. Pored toga,  smanjuju i vreme otklanjanje nastalih grešaka i pomaže redukuju nastajanje istih. Apache Subersion sistem je centralizovani VCS sistem (version control system), za razliku od Git-a koji je distribuirani VCS sistem. Između ova dva pristupa postoji suštinska razlika u dizajnu. Centralizovani sistem podrazumeva server, kao centralno skladište i klijente koji mrežno kupe sve podatke sa servera. Ukoliko server nije dostupan nastaju problemi.

Kod distribuiranih sistema ne postoji klijent pristup u pravom smislu te reči, jer svaki klijent sadrži potpunu kopiju repositorije. Koristeći datu kopiju možemo povratiti podatke na server ili ih postaviti na neki drugu lokaciju. Velika prednost ovakvog pristupa je mogućnost offline rada, odnosno nezavisnost od centralnog servera. Mrežne resurse koristimo samo za objavljivanje napravljenih promena. Suštinski Git sistem nudi krajnje drugačiji pristup u odnosu na ostale sisteme verzionisanja. Organizovan je kao mini fajl sistem, a svaka promena se arhivira kao snimak datog sistema (snapshot). Ukoliko neki fajl nije menjan, ne kopiramo ga, već čuvamo samo referencu ka originalnom fajlu.

Vizuelizacija komunikacije

Vizuelizacija komunikacije

Za Git slobobno možemo reći da je multiplatformsko rešenje, jer su podržani sledeći operativni sistemi: Microsoft Windows, Linux i Mac OS X. Proces instalacije je prilično jednostavan. Za Microsoft Windows postoji instaler, a i na Linux-u, gde sve ume da bude komplikovanje, cela procedura staje u dve komande, pošto sve renomiranje distribucije imaju Git paket u svojim repozitorijama. Detalje o procesu instalacije možete pronaći na http://git-scm.com/book/en/Getting-Started-Installing-Git

Za kraj, navešćemo još jednu zanimljivost. Reč Git u britanskom slengu znači „neprijatna osoba“ (unpleasant person), a značenje bliže opisuje tvorca ovog sistema (Linux Torvalds), kako je on to i sam izjavio. Više o Git-u možete pronaći na zvaničnoj web strani sa dokumentacijom http://git-scm.com/documentation, a preporučujemo vam i video sekciju http://git-scm.com/videos

U nekom od daljih tekstova, proći ćemo kroz kompletnu instalaciju Git servera i podešavanja klijenata.

itmogul-logoTekst je preuzet sa ugašenog bloga IT modul i originalni autor ovog teksta je Vladimir. Kompjuteraš IT blog će objavljivati tekstove sa tog bloga kako riznica znanja sa te lokacije ne bi otišla u zaborav.

Komentarišite

Email neće biti javno objavljen. Sajt je neobavezan podatak, svi ostali su obavezni.