Git – систем за верзионисање

Git систем за верзионисање је развио лично Линус Торвалдс, пошто је програмерима који су радили на развоју Linux кернела, требао адекватан систем за верзионисање. Због специфичности захтева, ниједан од постојећих ситема није у потпуности задовољавао њихове потребе, па је донета одлука за креирање свог система за верзионисање. Најприближнији њиховим потребама били су BitKeeper, који је власнички софтвер и Monoten који је развијен под GNU General Public лиценцом, али није задовољавао по питању перформанси.

Брзина, једноставан дизајн и могућност конкурентног рада на великим пројектима су били најбитнији захтеви, које су поставили пред себе, као и један врло необичан захтев – да нови систем буде антагонизам постојећег VCS система (version control system), који им је био анти узор. Тако је прва верзија изашла априла 2005 године. Git систем је развијен је под GNU General Public 2 лиценцом и више детаља о историјату можете пронаћи на адреси http://en.wikipedia.org/wiki/Git_(softver)

Систем за верзионисање служи да бележи комплетну историју над групом фајлова, од момента креирања па до финалне, актуелне верзије, уз могућност повраћаја жељење верзије фајла у било ком моменту. Наменски фајлови су груписани по пројектима (негде ћете наићи на израз репозиторијум).

slika2

Системи за верзионисање обезбеђују централизацију података, омогућују лакшу организација посла, поспешују продуктивност. Поред тога, смањују и време отклањање насталих грешака и помаже редукују настајање истих. Apache Subversion систем је централизовани VCS систем (version control system), за разлику од Git-а који је дистрибуирани VCS систем. Између ова два приступа постоји суштинска разлика у дизајну. Централизовани систем подразумева сервер, као централно складиште и клијенте који мрежно купе све податке са сервера. Уколико сервер није доступан настају проблеми.

Код дистрибуираних система не постоји клијент приступ у правом смислу те речи, јер сваки клијент садржи потпуну копију репоситоријума. Користећи дату копију можемо повратити податке на сервер или их поставити на неки другу локацију. Велика предност оваквог приступа је могућност офлајн рада, односно независност од централног сервера. Мрежне ресурсе користимо само за објављивање направљених промена. Суштински Git систем нуди крајње другачији приступ у односу на остале системе верзионисања. Организован је као мини фајл систем, а свака промена се архивира као снимак датог система (snapshot). Уколико неки фајл није мењан, не копирамо га, већ чувамо само референцу ка оригиналном фајлу.

Vizuelizacija komunikacije
Визуелизација комуникације

За Git слобобно можемо рећи да је мултиплатформско решење, јер су подржани следећи оперативни системи: Виндовс, Линукс и Mac OS X. Процес инсталације је прилично једноставан. За Виндовс постоји инсталер, а и на Линуксу, где све уме да буде компликовање, цела процедура стаје у две команде, пошто све реномирање дистрибуције имају Git пакет у својим репозиторијама. Детаље о процесу инсталације можете пронаћи на http://git-scm.com/book/en/Getting-Started-Installing-Git

За крај, навешћемо још једну занимљивост. Реч Git у британском сленгу значи „непријатна особа“ (unpleasant person), а значење ближе описује творца овог система (Линус Торвалдс), како је он то и сам изјавио. Више о Git-у можете пронаћи на званичној веб страни са документацијом http://git-scm.com/documentation, а препоручујемо вам и видео секцију http://git-scm.com/videos

У неком од даљих текстова, проћи ћемо кроз комплетну инсталацију Git сервера и подешавања клијената.

itmogul-logoТекст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Владимир. Компјутераш ИТ блог ће објављивати текстове са тог блога како ризница знања са те локације не би отишла у заборав.