🧑🏻‍💻 Written by Riccardo Genova
GitIntroduzione

Git: Sistema di Controllo Versione

Git è fondamentalmente un sistema di controllo versione, che è un tipo di software usato per tenere traccia delle modifiche apportate ai file nel tempo. Questo permette di tornare a versioni precedenti di un file, o di confrontare le modifiche nel tempo. Ecco alcuni dettagli più specifici:

Storia e Sviluppo

Git è stato creato da Linus Torvalds nel 2005 per lo sviluppo del kernel Linux. Torvalds voleva un sistema che potesse gestire grandi progetti in modo efficiente e distribuito, in contrasto con altri sistemi di controllo versione come CVS o Subversion che erano centralizzati.

Funzionamento di Base

In Git, un progetto è contenuto in un repository, che tiene traccia di tutte le modifiche. Ogni volta che salvi una nuova versione di un file (o un insieme di file), Git registra quella “istantanea” del progetto, permettendoti di ritornare a quella versione in qualsiasi momento.

Concetti Chiave

  • Commit: Un “commit” è un insieme di modifiche salvate. Ogni commit ha un identificativo unico (un hash SHA-1) e include informazioni sull’autore delle modifiche, una descrizione delle modifiche e un timestamp.
  • Branch: I rami (branch) sono usati per sviluppare funzionalità isolate l’una dall’altra. Il ramo principale di solito si chiama “master” o “main”.
  • Merge: Quando una funzionalità è completa, può essere “mergiata” (fusa) nel ramo principale.
  • Versione: La versione di un software corrisponde a un determinato stato nello sviluppo di un software. I sistemi di versioning quali GIT si occupano di gestire la loro definizione, e di registrarne la storia.

Vantaggi

  1. Distribuito: Ogni copia del repository è completa, con tutta la storia del progetto. Questo significa che non c’è un “server centrale” e se una copia è danneggiata, le altre copie possono essere usate per ripristinare i dati.
  2. Velocità: Git è progettato per essere veloce e efficiente anche con progetti molto grandi.
  3. Flessibilità: È adatto per vari workflow di sviluppo e può essere adattato a diverse esigenze di progetto.

Uso e Popolarità

Git è diventato lo standard de facto per il controllo versione nel software development, in parte grazie a piattaforme come GitHub, GitLab e Bitbucket che forniscono hosting per repository Git e strumenti collaborativi.