Idiota

Idiota Informazione
Sviluppato da Conservazione della libertà del software ( in )
Prima versione 7 aprile 2005
Ultima versione 2.32.0 (6 giugno 2021)
Depositare git.kernel.org/pub/scm/git/git.git
Garanzia di qualità Continua integrazione e l'integrazione continua
Scritto in C , Shell Unix , Perl , Tcl , Python e C++
Sistema operativo Multi piattaforma
Leggi formati Git packfile ( d ) , git packfile index, versione 1 ( d ) e git packfile index, versione 2 ( d )
Formati scritti Git packfile ( d ) , git packfile index, versione 1 ( d ) e git packfile index, versione 2 ( d )
Le lingue inglese
Tipo Controllo della fonte decentralizzato ( in )
Licenza GNU General Public License versione 2
Sito web git-scm.com

Git è un software di gestione delle versioni decentralizzato . È un software gratuito creato da Linus Torvalds , autore del kernel Linux , e distribuito sotto i termini della GNU General Public License versione 2. L'attuale contributore principale di git e da oltre 16 anni è Junio ​​C Hamano. A partire dal 2016, è il software di controllo della versione più popolare utilizzato da oltre dodici milioni di persone.

Particolarità tecniche

Simile in questo a BitKeeper , Git non si basa su un server centralizzato, ma utilizza un sistema di connessione peer-to-peer . Il codice informatico sviluppato non è solo archiviato sul computer di ciascun collaboratore del progetto, ma può anche essere archiviato su un server dedicato. Si tratta di uno strumento di basso livello , che si propone di essere semplice ed efficiente, il cui compito principale è quello di gestire l'evoluzione del contenuto di una struttura ad albero .

Git indicizza i file in base al loro checksum calcolato con la funzione hash SHA-1 . Quando un file non viene modificato, il checksum non cambia e il file viene archiviato una sola volta. Tuttavia, se il file viene modificato, entrambe le versioni vengono archiviate su disco.

In contrasto con le architetture software di controllo della versione comunemente usate fino ad ora, Git si basa interamente su un piccolo numero di strutture dati di base. Linus Torvalds ha spiegato: "In molti modi puoi pensare a Git solo come un filesystem . È indirizzato al contenuto e ha la nozione di versionamento, ma l'ho progettato davvero dal punto di vista di uno specialista di filesystem (dopotutto, sono abituato a lavorare sui kernel) e non avevo assolutamente alcun desiderio di creare un sistema di controllo di versione tradizionale. Le prime versioni di Git offrivano un'interfaccia rudimentale per manipolare questi oggetti interni prima che la funzionalità di versioning comune venisse poi gradualmente aggiunta e perfezionata.

Git è considerato buono, al punto che alcuni altri software di controllo della versione ( Darcs , Arch ), che non utilizzano un database , hanno mostrato interesse per il sistema di archiviazione di file di Git per il proprio funzionamento. Tuttavia, continuano a offrire funzionalità più avanzate.

Fin dall'inizio, Git è stato progettato con l'obiettivo di operare in modo decentralizzato, che è anche una delle chiavi del suo successo . La decentralizzazione di Git ha portato molto anche allo sviluppo del software libero, dal momento che la necessità di richiedere un account su un repository SVN o CVS centralizzato diventa obsoleta. Devi solo effettuare il fork di un progetto o clonarlo per iniziare a lavorarci (con tutta la cronologia del progetto in locale) e poi proporre il suo contributo ( pull request ) al repository principale (main maintainer del progetto).

I server Git utilizzano la porta 9418 per il protocollo specifico di Git per impostazione predefinita . Possono essere utilizzati anche i protocolli HTTP , HTTPS e SSH (e le loro porte standard ).

Funzionamento

Git ha due strutture di dati  : una base di oggetti e una cache di directory . Esistono quattro tipi di oggetti:

Il database degli oggetti può contenere qualsiasi tipo di oggetto. Un livello intermedio, tramite indici (checksum), stabilisce un collegamento tra gli oggetti del database e la struttura ad albero dei file.

Ogni oggetto è identificato da un checksum SHA-1 del suo contenuto. Git calcola il checksum e usa quel valore per determinare il nome del file dell'oggetto. L'oggetto viene inserito in una directory il cui nome corrisponde ai primi due caratteri del checksum. Il resto del checksum è quindi il nome del file per quell'oggetto.

Git salva ogni revisione in un file come un singolo BLOB . Le relazioni tra i BLOB vengono determinate esaminando gli oggetti commit . In genere, i blob vengono archiviati nella loro interezza utilizzando la compressione zlib . Questo principio può consumare rapidamente una grande quantità di spazio su disco; pertanto, gli oggetti possono essere combinati in archivi, che utilizzano la compressione differenziale (ovvero, i BLOB vengono salvati come differenze da altri BLOB ).

Alcuni ordini

In particolare, Git ha i seguenti comandi:

Interfacce

Un'interfaccia web è fornita di serie con Git:

Oltre a due interfacce grafiche:

Interfacce desktop di terze parti

Esistono anche altre applicazioni che offrono un'interfaccia desktop:

Forgia web self-hosting

Altri progetti forniscono interfacce web per Git con a volte la gestione di diversi progetti, ticket, wiki...:

Siti di hosting

Esistono vari siti di hosting generici (chiamati anche forges ), nonché siti dedicati a sviluppi specifici, che accettano progetti relativi all'utente, come l'istanza cgit di Kernel.org ( kernel Linux ) o le istanze Gitlab. da Freedesktop.org , Gnome , KDE o anche Blender .

Sviluppo

Git è stato sviluppato e ottimizzato appositamente per il kernel Linux . Linus Torvalds ha iniziato a scrivere nell'aprile 2005 , sostituendo il programma proprietario BitKeeper . Infatti, Larry McVoy ha revocato la possibilità di utilizzare il suo software gratuitamente, dopo che Andrew Tridgell ha tentato di decodificare i protocolli utilizzati da BitKeeper. Le ragioni di questa revoca, tuttavia, rimangono controverse.

La prima versione è stata rilasciata il 7 aprile 2005. Da allora, lo sviluppo di questo strumento è continuato. È stato progressivamente migliorato, vedendosi dotato di interfacce grafiche, interfacce web o script avanzati.

Il vertice del kernel di luglio 2005 è stata l'occasione per Linus Torvalds di annunciare che le seguenti versioni del kernel Linux (dalla versione 2.6.12) sarebbero state sviluppate utilizzando Git.

Fine luglio 2005, Linus Torvalds decise di affidare il mantenimento e l'evoluzione di Git a Junio ​​​​Hamano, spiegando che aveva "sempre detto che non voleva davvero mantenerlo a lungo termine".

Lo sviluppo è molto attivo. La prima versione stabile (1.0) è stata rilasciata il21 dicembre 2005, o meno di un anno dopo l'inizio del progetto.

Origine del nome

Linus Torvalds pronunciati [ɡɪt] con un duro ɡ .

La rivista PC World ci dice che "quando gli è stato chiesto perché ha chiamato il suo software ' git ', che è più o meno l'equivalente di 'stronzo' in slang britannico, Linus Torvalds ha risposto 'Sono solo uno sporco egoista, quindi chiamo tutti i miei progetti dopo la mia stessa persona. Prima Linux, poi Git." ".

Note e riferimenti

  1. Re: Curiosità: quando è nato git self-host?  » (Accesso 5 novembre 2019 )
  2. [ANNUNCIO] Git v2.32.0  " (consultato il 6 giugno 2021 )
  3. (in) "  Rilasciato il popolare sistema di gestione del codice sorgente Git 2.8.2 con oltre 18 correzioni di bug  " su Softpedia ,2 maggio 2016(consultato il 2 maggio 2016 )
  4. (in) Linus Torvalds, "  'Re: più aggiornamenti git ..'  ' ,10 aprile 2005(accesso 24 aprile 2017 ) In molti modi puoi vedere git come un filesystem: è indirizzabile dal contenuto e ha una nozione di versionamento, ma l'ho davvero progettato venendo al problema dal punto di vista di una persona del filesystem (hey, kernel è quello che faccio), e io in realtà non hanno assolutamente nulla interesse per la creazione di un sistema SCM tradizionale.  "
  5. Archivi git: usare il codice della cache della directory git in darcs? .
  6. [Gnu-arch-users] [ANNUNCIO] / Arch / abbraccia `git ' .
  7. (in) Jon Loeliger, Controllo della versione con Git , O'Reilly Media , Concetti di base di Git
  8. http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8371027#eng .
  9. (in) "  Allura  "
  10. (en) James Sanders, "  Se Microsoft acquista GitHub ti spaventa , ecco le tue migliori alternative  " , su TechRepublic ,4 giugno 2018
  11. AWS CodeCommit
  12. “  Gitea  ” , su Gitea.io (consultato il 29 giugno 2020 ) .
  13. "  Kalithea  " , su Scm.org (consultato il 29 giugno 2020 ) .
  14. (in) "  Tech Talk: Linus Torvalds è git  " su YouTube ,14 maggio 2007(consultato il 2 dicembre 2016 )
  15. http://www.wordreference.com/enfr/git .
  16. Oppure, secondo Merriam-Webster , persona incoerente o senza valore. John Lennon usa la parola nella sua canzone I'm So Tired .
  17. (in) PC World .

Appendici

Articoli Correlati

link esterno