[go: up one dir, main page]

Pereiti prie turinio

Git

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Git
Autorius(-iai)Linus Torvalds[1]
Kūrėjas(-ai)Junio Hamano ir kiti[2]
Išleista2005–04–7; prieš 19 metų (2005-04-07)
Stabili versija
2.47.1[3] taisyti Vikiduomenis / 2024-11-25
Repozitorija
Programavimo kalba(-os)Primarily in C, su GUI ir apvalkalo scenarijais, Perl, Tcl ir Python[4][5]
Operacinė sistemaPOSIX (Linux, macOS, Solaris, AIX), Windows
Kalbosanglų
TipasVersijavimas
LicencijaGPL-2.0-only[lower-roman 1][7]
Svetainė[// ] 

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ų.[8] Git pateikiama su GPL antros versijos licenzija.

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

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.[8]

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.[12] Po nesėkmingų derybų, trukusių daugiau nei mėnesį, Linux branduolio komanda pradėjo ieškoti naujos alternatyvos.[13] L. Torvaldsas norėjo naujos sistemos, kurią galėtų naudoti kaip BitKeeper, tačiau atmetus komercinius variantus, joks variantas neatitiko jo iškeltų kriterijų.[13] 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.[8]

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.[14] Ž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“.[9][10] Maždaug po poros mėnesių buvo išleista 2.6.12 Linux branduolio versija, naudojant Git.[9]

Junio Hamano vis dar yra pagrindinis Git palaikytojas ir programuotojas.

Git versijų sąrašas:[15]

Versija Išleidimo data
0.99 2005-07-11
1.0 2005-12-21
1.1 2006-01-08
1.2 2006-02-12
1.3 2006-04-18
1.4 2006-06-10
1.5 2007-02-14
1.6 2008-08-17
1.7 2010-02-13
1.8 2012-10-21
1.9 2014-02-14
2.0 2014-05-28
2.1 2014-08-16
2.2 2014-11-26
2.3 2015-02-05
2.4 2015-04-30
2.5 2015-07-27
2.6 2015-09-28
2.7 2015-10-04
2.8 2016-03-28
2.9 2016-06-13
2.10 2016-09-02
2.11 2016-11-29
2.12 2017-02-24
2.13 2017-05-10
2.14 2017-08-04
2.15 2017-10-30
2.16 2018-01-17
2.17 2018-04-02
2.18 2018-06-21
2.19 2018-09-10
2.20 2018-12-09
2.21 2019-02-24
2.22 2019-06-07
2.23 2019-08-16
2.24 2019-11-04
2.25 2020-01-13
2.26 2020-03-22
2.27 2020-06-01
2.28 2020-07-27
2.29 2020-10-19
2.30 2020-12-27

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.[16]

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

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

[redaguoti | redaguoti vikitekstą]

Sistemos paskirstymas

[redaguoti | redaguoti vikitekstą]

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.

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.

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

[redaguoti | redaguoti vikitekstą]

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.

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ą.

Stack Overflow savo metinėje kūrėjų apklausoje tris kartus įtraukė punktą apie kūrėjų naudojamas versijų valdymo sistemas.[18] 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%
  1. GPL-2.0-only since 2005-04-11. Kai kurios dalys pagal suderinamas licencijas, pvz.: LGPLv2.1.[6]
  1. „Initial revision of "git", the information manager from hell“. GitHub. 8 April 2005. Suarchyvuota iš originalo 16 November 2015. Nuoroda tikrinta 20 December 2015.
  2. „Commit Graph“. GitHub. 8 June 2016. Suarchyvuota iš originalo 20 January 2016. Nuoroda tikrinta 19 December 2015.
  3. „[ANNOUNCE] Git v2.47.1“. 25 lapkričio 2024. Nuoroda tikrinta 25 lapkričio 2024.
  4. „Git website“. Suarchyvuota iš originalo 9 June 2022. Nuoroda tikrinta 9 June 2022.
  5. „Git Source Code Mirror“. GitHub. Suarchyvuota iš originalo 3 June 2022. Nuoroda tikrinta 9 June 2022.
  6. „Git's LGPL license at github.com“. GitHub. 20 May 2011. Suarchyvuota iš originalo 11 April 2016. Nuoroda tikrinta 12 October 2014.
  7. „Git's GPL license at github.com“. GitHub. 18 January 2010. Suarchyvuota iš originalo 11 April 2016. Nuoroda tikrinta 12 October 2014.
  8. 8,0 8,1 8,2 8,3 „Getting Started - A Short History of Git“. Nuoroda tikrinta 2020-01-06.
  9. 9,0 9,1 9,2 Loeliger, Jon; McCullough, Matthew (2013). Version control with Git. O'Reilly Media, Inc. Nuoroda tikrinta 2020-01-06.
  10. 10,0 10,1 „Meet the new maintainer.“. 2005-07-27. Nuoroda tikrinta 2020-01-06.
  11. „Getting started - installing Git“. Nuoroda tikrinta 2020-01-06.
  12. 12,0 12,1 „Linus Torvalds BitKeeper blunder“. Nuoroda tikrinta 2020-01-06.
  13. 13,0 13,1 „Kernel SCM saga.“. Nuoroda tikrinta 2020-01-06.
  14. „Re: Trivia: When did git self-host?“. Nuoroda tikrinta 2020-01-06.
  15. „Releases“. Nuoroda tikrinta 2020-01-06.
  16. „Git Features“. Nuoroda tikrinta 2020-01-06.
  17. 17,0 17,1 „Re: [ANNOUNCE] Git wiki“. Nuoroda tikrinta 2020-01-06.
  18. „Stack Overflow Annual Developer Survey“. Nuoroda tikrinta 2020-01-06.