Git

Git informație
Dezvoltat de Software Freedom Conservancy ( în )
Prima versiune 7 aprilie 2005
Ultima versiune 2.32.0 (6 iunie 2021)
Depozit git.kernel.org/pub/scm/git/git.git
Asigurarea calității Integrare continuă și integrare continuă
Scris in C , Shell Unix , Perl , Tcl , Python și C ++
Sistem de operare Multiplatform
Citiți formatele Git packfile ( d ) , git packfile index, versiunea 1 ( d ) și git packfile index, versiunea 2 ( d )
Formate scrise Git packfile ( d ) , git packfile index, versiunea 1 ( d ) și git packfile index, versiunea 2 ( d )
Limbi Engleză
Tip Control descentralizat al sursei ( in )
Licență GNU General Public License versiunea 2
Site-ul web git-scm.com

Git este un software descentralizat de gestionare a versiunilor . Este un software gratuit creat de Linus Torvalds , autor al kernel-ului Linux , și distribuit în condițiile licenței GNU General Public License versiunea 2. Actualul principal contribuitor al git și de peste 16 ani este Junio ​​C Hamano. Începând din 2016, este cel mai popular software de control al versiunilor care este utilizat de peste douăsprezece milioane de oameni.

Particularități tehnice

Similar cu BitKeeper , Git nu se bazează pe un server centralizat, ci folosește un sistem de conexiune peer-to-peer . Codul computerului dezvoltat nu este stocat doar pe computerul fiecărui colaborator la proiect, dar poate fi stocat și pe un server dedicat. Este un instrument de nivel scăzut , care își propune să fie simplu și eficient, a cărui sarcină principală este de a gestiona evoluția conținutului unei structuri de copac .

GIT fișiere indexează pe baza lor de control calculate cu SHA-1 hash funcția . Când un fișier nu este modificat, suma de control nu se modifică și fișierul este stocat o singură dată. Cu toate acestea, dacă fișierul este modificat, ambele versiuni sunt stocate pe disc.

Spre deosebire de arhitecturile software de control al versiunilor utilizate în mod obișnuit până acum, Git se bazează în întregime pe un număr mic de structuri de date de bază. Linus Torvalds a explicat: „În multe feluri, te poți gândi la Git ca doar la un sistem de fișiere . Este adresat conținutului și are noțiunea de versiune, dar l-am conceput într-adevăr din perspectiva unui specialist în sistem de fișiere (la urma urmei, sunt obișnuit să lucrez la nuclee) și nu aveam absolut nicio dorință de a crea un sistem tradițional de control al versiunilor. Primele versiuni ale Git au oferit o interfață rudimentară pentru a manipula aceste obiecte interne înainte ca funcționalitatea comună de versiune să fie apoi adăugată și rafinată treptat.

Git este considerat a fi bun, până la punctul în care un alt software de control al versiunilor ( Darcs , Arch ), care nu folosește o bază de date , s-a arătat interesat de sistemul de stocare a fișierelor Git pentru propria lor operare. Cu toate acestea, acestea continuă să ofere funcții mai avansate.

De la început, Git a fost conceput cu scopul de a opera într-o manieră descentralizată, care este, de asemenea, una dintre cheile succesului său . Descentralizarea Git a adus, de asemenea, foarte mult la dezvoltarea de software gratuit, deoarece necesitatea de a solicita un cont pe un depozit centralizat SVN sau CVS devine depășită. Trebuie doar să bifurcați un proiect sau să îl clonați pentru a începe să lucrați la el (cu toată istoria proiectului la nivel local) și apoi să propuneți contribuția acestuia ( pull request ) la depozitul principal (întreținătorul principal al proiectului).

Serverele Git folosesc în mod implicit portul 9418 pentru protocolul specific Git. Pot fi utilizate și protocoalele HTTP , HTTPS și SSH (și porturile lor standard ).

Funcționarea

Git are două structuri de date  : o bază de obiect și un director cache . Există patru tipuri de obiecte:

Baza de date cu obiecte poate conține orice tip de obiect. Un strat intermediar, utilizând indexuri (sumele de verificare), stabilește o legătură între obiectele bazei de date și structura arborelui fișierelor.

Fiecare obiect este identificat printr -o sumă de control SHA-1 a conținutului său. Git calculează suma de control și folosește acea valoare pentru a determina numele fișierului obiectului. Obiectul este plasat într-un director al cărui nume se potrivește cu primele două caractere din suma de control. Restul sumei de control este apoi numele fișierului pentru acel obiect.

Git salvează fiecare revizuire într-un fișier ca un singur blob . Relațiile dintre blob-uri sunt determinate prin examinarea obiectelor de comitere . De obicei, bloburile sunt stocate în întregime utilizând compresia zlib . Acest principiu poate consuma rapid o cantitate mare de spațiu pe disc; prin urmare, obiectele pot fi combinate în arhive, care utilizează compresie diferențială (adică bloburile sunt salvate ca diferențe față de alte blob-uri ).

Unele comenzi

În special, Git are următoarele comenzi:

Interfețe

O interfață web este furnizată standard cu Git:

La fel și două interfețe grafice:

Interfețe desktop terțe

Există, de asemenea, alte aplicații care oferă o interfață desktop:

Forjare web auto-găzduită

Alte proiecte oferă interfețe web pentru Git cu gestionarea uneori a diferitelor proiecte, bilete, wiki ...:

Site-uri de găzduire

Există diverse site - uri de găzduire generale (numite și forges ), precum și site-uri dedicate dezvoltărilor specifice, acceptând proiecte legate de utilizatori, cum ar fi instanța cgit a Kernel.org ( kernel Linux ) sau instanțele Gitlab. De la Freedesktop.org , Gnome , KDE sau chiar Blender .

Dezvoltare

Git a fost special dezvoltat și optimizat pentru kernel-ul Linux . Linus Torvalds a început să scrie în aprilie 2005 , înlocuind programul proprietar BitKeeper . Într-adevăr, Larry McVoy a revocat posibilitatea de a utiliza software-ul său gratuit, după ce Andrew Tridgell a încercat să reverse-inginerie protocoalele utilizate de BitKeeper. Motivele acestei revocări rămân însă controversate.

Prima versiune a fost lansată pe 7 aprilie 2005. De atunci, dezvoltarea acestui instrument a continuat. A fost îmbunătățit progresiv, văzându-se echipat cu interfețe grafice, interfețe web sau scripturi avansate.

Summitul Kernel din Iulie 2005 a fost prilejul pentru care Linus Torvalds a anunțat că următoarele versiuni ale kernel-ului Linux (de la versiunea 2.6.12) vor fi dezvoltate folosind Git.

Sfârșit Iulie 2005, Linus Torvalds a decis să încredințeze întreținerea și evoluția Git lui Junio ​​Hamano, explicând că „a spus întotdeauna că nu vrea cu adevărat să o mențină pe termen lung”.

Dezvoltarea este foarte activă. Prima versiune stabilă (1.0) a fost lansată pe21 decembrie 2005, sau la mai puțin de un an de la începerea proiectului.

Originea numelui

Linus Torvalds pronunță [ˈɡɪt] cu un ɡ dur .

Revista PC World ne spune că „la întrebarea de ce și-a numit software-ul„ git ”, care este aproximativ echivalentul„ tâmpitului ”în argoul britanic, Linus Torvalds a răspuns„ Sunt doar un egoist spurcat, așa că îmi numesc toate proiectele după propria mea persoană. Mai întâi Linux, apoi Git. ” ".

Note și referințe

  1. „  Re: Trivia: Când s-a auto-găzduit?  » (Accesat pe 5 noiembrie 2019 )
  2. „  [ANUNȚ] Git v2.32.0  ” (accesat la 6 iunie 2021 )
  3. (în) „  Git 2.8.2 Sistem de gestionare a codului sursă popular lansat cu peste 18 remedieri de erori  ” pe Softpedia ,2 mai 2016(accesat la 2 mai 2016 )
  4. (în) Linus Torvalds, "  'Re: mai multe actualizări git ..'  ' ,10 aprilie 2005(accesat la 24 aprilie 2017 ) „  În multe feluri puteți vedea doar git ca un sistem de fișiere - este adresabil conținutului și are o noțiune de versiune, dar chiar am conceput-o venind la problemă din punctul de vedere al unei persoane din sistemul de fișiere (hei, miezul este ceea ce fac) și de fapt am un interes absolut zero în crearea unui sistem tradițional SCM.  "
  5. git Archives: folosiți codul cache al directorului git în darcs? .
  6. [Gnu-arch-users] [ANUNȚ] / Arch / îmbrățișează `git ' .
  7. (în) Jon Loeliger, Control versiune cu Git , O'Reilly Media , Git Basic Concepts
  8. http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8371027#eng .
  9. (în) „  Allura  ”
  10. (ro) James Sanders, „  Dacă Microsoft cumpără GitHub te sperie, iată cele mai bune alternative  ” , pe TechRepublic ,4 iunie 2018
  11. AWS CodeCommit
  12. „  Gitea  ” , pe Gitea.io (accesat pe 29 iunie 2020 ) .
  13. „  Kallithea  ” , pe Scm.org (accesat pe 29 iunie 2020 ) .
  14. (în) „  Tech Talk: Linus Torvalds is git  ” pe YouTube ,14 mai 2007(accesat la 2 decembrie 2016 )
  15. http://www.wordreference.com/enfr/git .
  16. Sau, potrivit lui Merriam-Webster , o persoană inconsistentă sau lipsită de valoare. John Lennon folosește cuvântul în piesa sa Sunt atât de obosit .
  17. (în) PC World .

Anexe

Articole similare

linkuri externe