Git

Git – atviro kodo paskirstyto versijų valdymo sistema, skirta grupei žmonių kartu rašyti, redaguoti bet kokį didelį projektą, susidedantį iš daugelio tekstinių ir kitokių dokumentų. Git pateikiama su GPL antros versijos licenzija.

 Istorija 

Sistemą 2005 m. sukūrė Linusas Torvaldsas Linux branduolio vystymui. 2005 m. liepos 25 d., L. Torvaldsui sugrįžus dirbti prie Linux branduolio, Junio Hamano tapo pagrindiniu Git palaikytoju ir programuotoju. Git saugo jos tvarkomą projektą bei visą jo versijų istoriją kiekvieno naudotojo kompiuteryje, nepriklausomai nuo centrinio serverio.

Linux branduolys yra didelės apimties atvirojo kodo programinės įrangos projektas. Tarp 1991 ir 2002 m. programinės įrangos pakeitimai buvo perduodami kaip pataisos ir archyvuoti failai. 2002 m. Linux branduolio projektas pradėjo naudoti tobulesnę paskirstyto versijų valdymo sistemą BitKeeper.

2005 m. Larry McVoy, BitKeeper autorinių teisių savininkas, panaikino nemokamą licenciją Linux kūrėjams  teigdamas, kad Andrew Tridgell atvirkštine inžinerija sukūrė SourcePuller, naudodamas BitKeeper protokolus. Po nesėkmingų derybų, trukusių daugiau nei mėnesį, Linux branduolio komanda pradėjo ieškoti naujos alternatyvos. L. Torvaldsas norėjo naujos sistemos, kurią galėtų naudoti kaip BitKeeper, tačiau atmetus komercinius variantus, joks variantas neatitiko jo iškeltų kriterijų. Tai paskatino Linusą Torvaldsą sukurti savo įrankį, atitinkantį visus jo iškeltus reikalavimus tokio tipo programinei įrangai bei naudojantis pamokomis, kurių jie išmoko naudodami BitKeeper.

Pirma veikianti programos versija buvo išleista 2005 m. balandžio 7 d., o 16 dieną į Git repozitoriją buvo įkelta didžioji dalis Linux branduolio kodo (virš 6.7 milijonų eilučių). Po dar 3 minučių buvo įkeltas pirmas kodo papildymas. Įsitikinęs, kad viskas veikia kaip ir turėtų, Linusas Torvaldsas apie tai pranešė savo el. pašto grupėje. Žinodamas, jog nori grįžti prie Linux branduolio kūrimo, L. Torvaldsas liepos 25 d. perdavė Git kodą Junio Hamano, pranešdamas, kad jis buvo „akivaizdus pasirinkimas“. Maždaug po poros mėnesių buvo išleista 2.6.12 Linux branduolio versija, naudojant Git.

Junio Hamano vis dar yra pagrindinis Git palaikytojas ir programuotojas.

 Versijos 
Git versijų sąrašas:
Versija  Išleidimo data0.992005-07-111.02005-12-211.12006-01-081.22006-02-121.32006-04-181.42006-06-101.52007-02-141.62008-08-171.72010-02-131.82012-10-211.92014-02-142.02014-05-282.12014-08-162.22014-11-262.32015-02-052.42015-04-302.52015-07-272.62015-09-282.72015-10-042.82016-03-282.92016-06-132.102016-09-022.112016-11-292.122017-02-242.132017-05-102.142017-08-042.152017-10-302.162018-01-172.172018-04-022.182018-06-212.192018-09-102.202018-12-092.212019-02-242.222019-06-072.232019-08-162.242019-11-042.252020-01-132.262020-03-222.272020-06-012.282020-07-272.292020-10-192.302020-12-27

 Dizainas 
Git leidžia keliems autoriams vienu metu keisti esamą programos kodą, per daug vienas kitam netrukdant. Tarpusavyje nepersiklojantys pakeitimai net ir tame pačiama faile sujungiami į naują versiją automatiškai, jei tik jie pakankamai toli vienas nuo kito. Žmogui tenka kištis tik jei keli autoriai perrašinėjo kodą jau visiškai ten pat. Git saugo visą kodo keitimų istoriją, lieka žinomi keitimų autoriai bei ką jie pakeitė. Prireikus visada galima grąžinti senesnę versiją, ar lyginti ją su esama.

Git dizainas yra kiek tai remiasi prieš jį pasirodžiusių versijų valdymo sistemų BitKeeper ir Monotone. BitKeeper Linux branduolio kūrėjai naudojo prieš prieš jo savininkui atimant nemokamą licenciją, o Monotone buvo svarstomas kaip BitKeeper pakaitalas, bet Linusui Torvaldsui šis neįtiko dėl itin mažo greičio.

Git iš pradžių buvo kurtas kaip žemo lygio versijų valdymo sistemos variklis, prie kurio būtų galima prijungti atskiras vartotojų sąsajas. Nuo to laiko Git tapo išsamia versijų valdymo sistema, kurią galima naudoti be papildomų priemonių.

 Dizaino bruožai 

 Sistemos paskirstymas 
Git, kaip ir kitos versijų valdymo sistemos leidžia kūrėjams keliese dirbti prie to pačio projekto ar failo. Be to, turint interneto ryšį, dažniausiai galima prisijungti iš bet kurios pasaulio vietos ir įkelti savo kodo pakeitimus.

 Suderinamumas 
Git palaiko visas populiariausias modernias operacines sistemas, todėl nesvarbu kokią sistema mėgsta arba gali naudotis kūrėjas, jis visada turės prieigą prie Git saugyklos.

 Šakojimas 
Git leidžia vartotojams dirbti greta pagrindinės projekto šakos. Tai vadinama šakojimu. Šakos Git sistemoje leidžia dirbti prie kodo, nepaveikiant pagrindinės šakos. Tai leidžia pagrindinei šakai išlaikyti stabilumą ir kokybę, kol naujos funkcijos ar pakeitimai nėra baigti ar pilnai ištestuoti.

 Lengvas ir greitas 
Git naudoja benuostolinę kompresiją saugoti failus vietinėse saugykloje, todėl jie užima itin mažai vietos, o prireikus jų sistema greitai gali juos paruošti darbui. Taip pat Git gali atlikti šias ir kitas operacijas itin greitai, nes C programavimo kalba (kuria parašyta didžioji dalis Git) yra žemo lygio ir artima mašininiam kodui.

 Prieinamumas 
Git yra nemokama ir atviro kodo programinė įranga, todėl ja naudotis nereikia papildomų lėšų. Taip pat Git suderinama su visomis populiariausiomis šiuolaikinėmis operacinėmis sistemomis, todėl nepaisant jų įvairovės, visi kūrėjai gali naudoti šią versijų valdymo sistemą.

 Populiarumas 
Stack Overflow savo metinėje kūrėjų apklausoje tris kartus įtraukė punktą apie kūrėjų naudojamas versijų valdymo sistemas. 2015 m. (16 694 atsakymų), 2017 m. (30 730 atsakymų) ir o 2018 m. (74 298 atsakymų). Git buvo akivaizdus lyderis tarp atsakiusių programuotojų, 2018 m. surinkęs net iki 87,2% balsų.

Apklausoje sudalyvavusių programuotojų naudojamos versijų valdymo sistemos:
 Pavadinimas  2015  2017  2018 Git  69.3%  69.2%  87.2% Subversion  36.9%  9.1%  16.1% TFVC  12.2%  7.3%  10.9% Mercurial  7.9%  1.9%  3.6% CVS  4.2%  -  - Perforce  3.3%  -  - VSS  -  0.6%  - ClearCase  -  0.4%  - Zip failų archyvai  -  2.0%  7.9% Dalinimasis tinklu  -  1.7%  7.9% Kita  5.8%  3.0%  - Nei viena  9.3%  4.8%  4.8%

 Pastabos 

 Šaltiniai 

Kategorija:Versijų kontrolės sistemos
Kategorija:Laisvoji programinė įranga