Git
Git logo
Autor inițialLinus Torvalds[1]  Modificați la Wikidata
DezvoltatorJunio Hamano, Linus Torvalds
Versiune inițială[2]
Ultima versiune2.46.0[3]  Modificați la Wikidata ()
Repogit.kernel.org/pub/scm/git/git.git Modificați la Wikidata
Stare de dezvoltareactivă
Scris înC, Bourne Shell, Perl[4]
Platformămulti-platformă
Disponibil înlimba engleză  Modificați la Wikidata
Disponibil în românănu
TipRevision Control
LicențăGNU General Public License
Prezență online
https://git-scm.com/

Git este un sistem version control care rulează pe majoritatea platformelor, inclusiv Linux, POSIX, Windows și OS X. Ca și Mercurial, Git este un sistem distribuit și nu întreține o bază de date comună. Este folosit în echipe de dezvoltare mari, în care membrii echipei acționează oarecum independent și sunt răspândiți pe o arie geografică mare.

Git este dezvoltat și întreținut de Junio Hamano, fiind publicat sub licență GPL și este considerat software liber.

Dintre proiectele majore care folosesc Git amintim Amarok[5][6], Android[7], Arch Linux, Btrfs[8], Debian[9], DragonFly BSD[10], Eclipse[11], Fedora, FFmpeg [12], GIMP[13], GNOME[14][15], GTK+[16], Hurd[17], Linux kernel, Linux Mint[18][19], openSUSE[20], Perl[21], phpBB[22], Qt[23], rsync[24], Ruby on Rails[25], Samba[26].

Dezvoltarea Git a început după ce mai mulți developeri ai nucleului Linux au ales să renunțe la sistemul de revision control proprietar BitKeeper.[27] Posibilitatea de a utiliza BitKeeper gratuit a fost retrasă după ce titularul drepturilor de autor a afirmat că Andrew Tridgell a încălcat licența BitKeeper prin acțiunile sale de inginerie inversă. La conferința Linux.Conf.Au 2005, Tridgell a demonstrat în timpul discursului său că procesul de inginerie inversă pe care l-a folosit a fost pur și simplu o sesiune telnet pe portul corespunzător al serverului BitKeeper și rularea comenzii help pe server.[28] Tot în această perioadă, și tot cu scopul de a înlocui BitKeeper, a fost creat sistemul Mercurial.

Torvalds dorea un sistem distribuit pe care să-l folosească cum folosea BitKeeper, dar niciunul din sistemele libere disponibile nu îi satisfăcea necesitățile. El a dat ca exemplu faptul că un sistem de management al controlului surselor are nevoie de 30 de secunde ca să aplice un patch și să actualizeze toate metadatele asociate, și a făcut observația că așa ceva nu poate scala la nevoile de dezvoltare ale comunității kernelului Linux, unde sincronizarea cu ceilalți dezvoltatori poate necesita 250 de astfel de acțiuni simultan. Ca criteriu de design, el a specificat că aplicarea de patch trebuie să nu dureze mai mult de trei secunde, precum și alte trei obiective:[29]

  • Se ia Concurrent Versions System (CVS) ca exemplu de cum să nu; în caz de nesiguranță, se va lua decizia exact opusă celei luate de echipa CVS..[30]
  • Să suporte un workflow distribuit, similar lui BitKeeper.[30]
  • Să includă elemente de siguranță foarte puternice împotriva coruperii datelor, fie accidentală, fie prin acțiuni malițioase.[31]

Aceste criterii au eliminat toate sistemele de control al versiunilor utilizate la acea dată, astfel că, imediat după release-ul variantei de dezvoltare 2.6.12-rc2 a kernelului Linux, Torvalds s-a apucat să scrie el unul.[30]

Dezvoltarea noului sistem a fost începută de Linus Torvalds în 3 aprilie 2005[32] pentru a fi anunțat câteva zile mai târziu (aprilie 6) pe lista de email a proiectului Linux kernel[33]. O zi mai târziu, noul sistem a început să fie folosit pentru dezvoltarea actuală de cod pentru proiectul Git.[32] Primele operații merge a avut loc pe data de 18 aprilie.[34] În data de 16 iunie, versiunea 2.6.12 Linux kernel a fost pusă în Git[35] care continuă și în ziua de azi să fie sistemul revision control folosit de proiectul Linux kernel.

Denumirea

modificare

Torvalds a glumit sarcastic despre numele git (care înseamnă „persoană neplăcută” în argoul englezei britanice): „sunt un nesuferit egoist, și botez toate proiectele mele după mine însumi. Mai întâi 'Linux', acum 'git'.”[36][37] Pagina de manual descrie Git ca „tracker stupid de conținut”.[38]

Fișierul read-me al codului sursă detaliază:[39]

„git” poate însemna orice, în funcție de dispoziția de moment.

  • Combinație aleatoare de trei litere care este pronunțabilă și nefolosită de nicio altă comandă UNIX. Faptul că este o scriere greșită a lui „get” poate sau nu să fie relevant.
  • Stupid. Mizerabil și demn de dispreț. Simplu. Alegeți ce vreți din dicționarul de argou.
  • Global information tracker”: dacă ești într-o dispoziție bună, și dacă îți convine. Îngerii cântă, și camera este umplută brusc de lumină.
  • Goddamn idiotic truckload of sh*t”: când se strică.

Codul sursă al lui Git denumește programul „the information manager from hell”.

Referințe

modificare
  1. ^ https://web.archive.org/web/20151116175401/https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290  Lipsește sau este vid: |title= (ajutor)
  2. ^ https://marc.info/?l=git&m=117254154130732  Lipsește sau este vid: |title= (ajutor)
  3. ^ Junio C Hamano[*][[Junio C Hamano (Japanese software engineer)|​]] (), [ANNOUNCE] Git v2.46.0 (în engleză), accesat în  
  4. ^ „git/git.git/tree”. git.kernel.org. Arhivat din original la . Accesat în . 
  5. ^ Getting Started/Sources/Amarok Git Tutorial - KDE TechBase
  6. ^ „amarok in kde-developers - Gitorious”. Arhivat din original la . Accesat în . 
  7. ^ „Using Repo and Git (Android Open Source Project)”. Arhivat din original la . Accesat în . 
  8. ^ „Btrfs source repositories - btrfs Wiki”. Btrfs.wiki.kernel.org. Accesat în . 
  9. ^ git.debian.org Git
  10. ^ TypicalGitUsage - dragonflywiki[nefuncțională]
  11. ^ „WTP Incubator using Git”. Arhivat din original la . Accesat în . 
  12. ^ „Get FFmpeg”. Ffmpeg.org. Accesat în . 
  13. ^ The GIMP Development Team. „GIMP Developer Resources”. Arhivat din original la . Accesat în . 
  14. ^ Lucas Rocha. „Mailing List Announcement”. Accesat în . GNOME to migrate to git version control system... 
  15. ^ Git - GNOME Live!
  16. ^ „GTK+ - Download”. Arhivat din original la . Accesat în . 
  17. ^ source repositories
  18. ^ The Linux Mint Blog » Blog Archive » Mint to use Launchpad for translations, bugs, blueprints and github for code hosting and version control
  19. ^ DistroWatch.com: Put the fun back into computing. Use Linux, BSD
  20. ^ „openSUSE - Gitorious”. Arhivat din original la . Accesat în . 
  21. ^ Léon Brocard. „Mailing List Announcement”. Accesat în . The Perl Foundation has migrated Perl 5 to the Git version control system... 
  22. ^ phpBB (). „phpBB moves source code versioning from Subversion to Git”. phpBB Group. Accesat în . 
  23. ^ „Qt now open for community contributions”. . Accesat în . 
  24. ^ git.samba.org - rsync.git/summary, git.samba.org 
  25. ^ "Rails is moving from SVN to Git". Accesat în . 
  26. ^ Using Git for Samba Development - SambaWiki
  27. ^ Feature: No More Free BitKeeper | KernelTrap.org
  28. ^ Jonathan Corbet (). „How Tridge reverse engineered BitKeeper”. Linux Weekly News. 
  29. ^ Eroare la citare: Etichetă <ref> invalidă; niciun text nu a fost furnizat pentru referințele numite kernel_SCM_saga
  30. ^ a b c Eroare la citare: Etichetă <ref> invalidă; niciun text nu a fost furnizat pentru referințele numite linusGoogleTalk
  31. ^ Eroare la citare: Etichetă <ref> invalidă; niciun text nu a fost furnizat pentru referințele numite integrity_goals
  32. ^ a b Linus Torvalds (). „Re: Trivia: When did git self-host?”. 
  33. ^ Linus Torvalds (). „Kernel SCM saga.”. 
  34. ^ Linus Torvalds (). „First ever real kernel git merge!”. 
  35. ^ Linus Torvalds (). „Linux 2.6.12”. 
  36. ^ „GitFaq: Why the 'Git' name?”. Git.or.cz. Arhivat din original la . Accesat în . 
  37. ^ „After controversy, Torvalds begins work on 'git'. PC World. . Arhivat din original la . Torvalds seemed aware that his decision to drop BitKeeper would also be controversial. When asked why he called the new software, 'git', British slang meaning 'a rotten person', he said. 'I'm an egotistical bastard, so I name all my projects after myself. First Linux, now git.' 
  38. ^ „git(1) Manual Page”. Arhivat din original la . Accesat în . 
  39. ^ „Initial revision of 'git', the information manager from hell · git/git@e83c516”. GitHub. Arhivat din original la . Accesat în . 
modificare