Git e сравнително нова version control система написана от Linus Torvalds, на който му е било писнало да ползва cvs и си направил git. От този линк може да видите как Linus представя git в google, много образователно филмче. По принцип в pixeldepo ползваме Subversion, но винаги е добре човек да е в крак с новите технологии.
Самата философия на git е доста по-различна от тази на svn. Git се води Distributed revision control, което в началото не ми говореше нищо. В subversion кода се намира в един централен repository и всички потребители, които имат commit права, могат да записват код там. Докато в git всеки потребител си има локално repository(или клонинг както го наричат) и може да работи в него и после ако няма push права, може да прати кода си като patch-ове на някой, който има такива права и той да ги сложи в основния repository.
Основните плюсове, които аз виждам в git има пред subversion идват основно от това, че git е сравнително нова технология, която си е взела добри бележки кои са добрите и лошите страни на нейните конкуренти:
- в git ги няма ги супер отвратителните .svn папки, там има само една папка .git и няколко конфигурационни файла (като .gitignore и други) и това е за целия проект, докато в subversion папките .svn са навсякъде. Особено ако в проекта има много директории, на много нива, е просто ужасно. Спомням си веднъж когато свалих целия repository на Zend Framework, не беше истина колко .svn папки имаше и колко време му трябваше на windows-a да ги изтрие после.
- sub-module, това е възможност на git, да се влагат под проекти във вашия проект (това в svn не знам дали го има, ако го има и някои го знае може да каже и ще променя текста за тази точка
) - в subversion всеки commit качва директно в централния repository, което поне на мен много ми пречи да правя чести commit особено сега когато тотално реорганизирам цялата си кодова база. Докато в git commit значи само commit към локалната версия на дадения потребител и когато трябва да се праща в централното repository се използва push командата, която може да прати множество промени.
- github, основния ми опит (да не кажа целия) с git е свързан с github.
- git e доста по-удобен за работа с конзола, за някои това не е особен плюс, но пък аз главно използвам конзолата.
- (за това само съм чувал) доста по-лесно се работи с branch-ове и с множество версии.
Е както всичко на този свят и git си има проблеми и недостатъци, като поне повечето от тях, според мен, идват от това че git е все още млада технология:
- git под windows се води за трудно, все още има хора който ползват windows, и за тях работата с git няма да е толкова лесна. Или поне така се казва, аз лично нямах никакви проблеми с git под windows използвайки това: msysgit (за повече информация погледнете този линк).
- има много повече програми за svn от колкото git, само ще кажа TortoiseSvn(Windows) и Versions(MacOsX), докато за git поне аз знам GitX(MacOsX)
- по лесен е за начинаещи и като цяло има доста повече материали
- доста по-лесно се хоства svn сървър и като цяло има и доста добри web-базирани приложения за менажиране на svn сървър. Веднага се сещам за Warehouse (който между другото вече е с отворен код, и на която в момента и се прави и за git версия)
Поне така написани нещата git изглежда доста по-добрия вариант, така че май в скоро време ще се минава на git

April 23rd, 2009 at 12:29 am
http://code.google.com/p/tortoisegit/ – ето нещо младо, но доста помага за Windows
Въпреки него, ми трябваше доста време да се ориентирам с git.. надявам се че някой ден ще преместя всички проекти на git, защото определено доста по-добре се държи от svn от където и да го погледнеш.
April 23rd, 2009 at 12:42 am
10x Това изглежда много добре и може да е последната щриха да убедя windows колегите да минем на git
April 23rd, 2009 at 7:58 am
Възхитен съм от GIT, след няколко години работа с SVN, сега направо се родих
.
April 23rd, 2009 at 4:06 pm
Добра статия! Аз лично ползвам SVN, плюс е плъгина за Eclipse.
Но ще се пробва и Git-a.
Иначе .svn папките наистина дразнят много, а при copy/paste ако забравиш да ги изтриеш и commit-неш става весело
July 27th, 2009 at 5:24 pm
Интересно е че не знаеш за съществуването на TortoiseGIT, което прави управлението не по-малко лесно съответно съществуват и плугини за Visual Studio, има и плъгини за Eclipse и NetBeans. А за WEB интерфейс с лопата да ги ринеш стига да ползваш чичко Гугъл. примерно:
webgit, cgit, git-php, repo.or.cz, gitorious, InDefero, дори вездесъщият Trac има плъгин за GIT.
Единствено остава проблема с документацията и както пишеше в един блог най-добре е да се ползва като текущвата ви система и ако нещо не стане както ви харесва тогава до прочетете защо това е така и да кажете едно “аха”
July 27th, 2009 at 8:32 pm
За TortoiseGIT, не бях чувал много защо просто вече следя много софтуера за windows, а и за git вече ползвам най-вече конзолата и от време на време GitX. А за Web интерфейсите бях прегледал няколко от споменатите, но просто не ме впечатлиха много. Поне за сега github ми върши страхотна работа и все се каня да пробвам да подкарам werehouse за git.
Иначе малко след този пост, някъде към средата нa Май месец, прехвърлих всичките си svn repo-та към git. И съм много доволен. Имах 1-2 проблема но те са главно свързани с мое незнание, и след малко търсене всичко се е оправяло.