Git – тези три букви всеки ден събират живота на всеки програмист, без значение дали се грижи за фронтенд или бекенд технологии, без никаква разлика дали основните му интереси са в която и да било от съвременните уеб технологии. Малко неща са безспорни колкото Git. Разбира се, в работата с него също си има майсторство, по-неопитните винаги ще се чувстват в някаква степен извън безопасността си.
Но въпреки това, Git е истински приятел на всеки, който се занимава днес с програмиране. Семпла, логична, на практика неуязвима и неразрушима система, която помага на всички програмисти по света да си вършат работата. Толкова съвършено, че чак нереално.
И все пак, могат да ви го потвърдят дори най-киселите и опитни програмисти. Git е истинско бижу.
Git е gift
Нещо повече – тази система шедьовър си има един ясен създател. Любимият на гилдията Линус Торвалдс, който създава също и „Линукс“, а съответно – дължим на него и целия мобилен свят, базиран на Android.
Но, събрали сме се да си говорим за Git… А какво ще рече това съкращение? Когато на 7 април 2005 г., Торвалдс качва основния си проект, той добавя и файл с обяснение, в което пише:
GIT – това е глупава програма за следене на съдържание.
„Git“ може да значи каквото си поискате, в зависимост от настроението ви:
– случайна комбинация от 3 букви, която е лесно произносима и не съвпада с други команди за системи, базирани на UNIX. Фактът, че може да се произнесе погрешно като “get”(„взимам“), може би има, а може би няма връзка.
– глупаво. подигравано и нагрубявано. просто. Изберете си сами от речник по ваш избор.
– глобална система за следене на информация (“global information tracker”) – чудесно е, че сте в добро настроение и това работи за вас. Ангелите пеят, светлината внезапно нахлува в стаята.
– адски идиотски камион с… (“goddamn idiotic truckload of sh*t“). Но стига.
Това е глупав (но страшно бърз) мениджър на съдържание. Той не прави много, но това, което прави, е да следи промените в съдържанието внимателно.
Git на градина
Линус е велик в своята област, може да няма дар словото на поет и все пак го е казал. Бърза система, която не прави грешки, следейки съдържанието. И е безплатна.
А днес е и на практика безалтернативна. Никой не си прави труда дори да се опитва да измисли по-добър софтуер от този, защото той на практика няма грешки и несъвършенства. Здрав е като северняшкото чувство за хумор на Линус от описанието на проекта.
Нещо повече: Git се „ражда“ съвсем набързо, като едва ли не полево решение за начина, по който да качват кода си програмистите, работещи по новата версия на операционната система Linux. Едва после, почти случайно, се оказва, че той е много повече, че е системата, която дълго време са търсели на практика всички програмисти по света.
И така: какво е Git за всеки, който тепърва ще се срещне с него?
Лесен начин много хора да работят по един и същи проект.
Push и после бягай
Във всеки съвременен софтуерен проект се налага много хора да си сътрудничат върху една и съща база от код. Но как е възможно това?
Направо ме е страх да се заровя за това как са се случвали нещата преди 2005-а. Но оттогава отговорът определено може да съдържа само три букви, знаете кои.
Git е система, чрез която кодът на дадена програма стои на определен сървър, като е достъпен на всички разработчици. Получи ли дадена задача, програмистът си обновява основната версия от съответния сървър и си прави нов, свой вариант на проекта. Така е сигурно, че ще работи спокойно, като се отбелязва само онова, което е било променено по някои от файловете.
И когато той е направил това, което е искал – създал е например нова страница, може да изпрати отново своя „клон“ (“branch”), той да се сравни с отдалеченото копие на сървъра и да може да се добави към него, ако шефовете и колегите на въпросния разработчик са съгласни с промяната.
…всички за Git
Така тя може да се добави, независимо, че в същия момент още много програмисти от екипа „бърникат“ по същите файлове, правят своите промени и подобрения. Същевременно може лесно и бързо да се поправи всеки, изникнал в хода на работата проблем. Може да се върне назад всяка погрешно направена промяна. С лекота може да се види кой точно е променил даден ред код, впоследствие довел до някакъв проблем. И не само: каква е била целта му, защото всяка промяна в Git върви със съответното съобщение за това какво е искал да направи чрез нея програмистът.
И това е всичко? Точно така, и то никак, ама никак не е малко, особено ако към всичко това се добави фактът, че по някои проекти могат да работят огромен брой програмисти.
И Git винаги се справя с основната си задача – да отличава промените, които са направени в един или друг клон, да „намества“ комбинациите от сложни промени. Да намира конфликтите, появили се в резултат на това, че едновременно една и съща част от кода е променяна от различни програмисти.
Git === Gold
Естествено, за да изпълнява и по-специфични задачи, да има удобен интерфейс (или пък обратното, за да си стои в обичаната от по-екстремните програмисти командна линия), Git отдавна не е сам. Работи и огромна допълнителна инфраструктура, който допълва нещата там, където има какво да се надгради така, че да е удобно на потребителите, в случая – програмистите.
Днес отделните решения използват Git, като го допълват. Най-масовите платформи, в които се качва код и всякакъв тип проекти, са GitHub и GitLab. Първият сайт определено е най-познат и масов, някои го наричат „фейсбук за програмисти“, а вторият има по-професионални приложения. На него се качват повече истински мащабни приложения.
И все пак, основата си стои непокътната. Независимо от технологиите, които приема. Превърнала се е в здрава система с ясни правила, готова да посреща следващите поколения програмисти. Които само могат да мечтаят да създадат нещо толкова стабилно и… направо съвършено, ако се абстрахираме от леко неловките думи на Линус Торвалдс в първото му представяне.
Git днес е задължителен и за най-големите проекти, и за най-големите компании. Наборът от правила, които ползва, съвсем не е толкова голям и все пак – уменията по това колко добре се справяш при трудни Git ситуации издават наистина добрите програмисти. Ако искате и вие да станете такива… отпуснете любопитството си нататък. И после ще ви очакваме, за да ни разкажете.