Git è un sistema di controllo delle versioni open source noto per velocità, stabilità e modello di collaborazione distribuita. Creato originariamente nel 2006 per gestire l'intero kernel Linux, Git ora vanta un set completo di funzionalità, un team di sviluppo attivo e diverse community di hosting gratuito.
Git è stato progettato da zero, prestando poca attenzione agli standard esistenti dei sistemi di controllo centralizzato. Quindi, se provieni da uno sfondo SVN o CVS, prova a dimenticare tutto ciò che sai sul controllo della versione prima di leggere questa guida.
Lo sviluppo del software distribuito è fondamentalmente diverso dai sistemi di controllo delle versioni centralizzati. Invece di memorizzare le informazioni sui file in un unico repository centrale, Git fornisce ogni sviluppatore una copia completa del repository. Per facilitare la collaborazione, Git consente a ciascuno di questi repository di condividere le modifiche con qualsiasi altro repository.
Avere un repository completo sulla propria macchina locale ha un impatto di vasta portata sul ciclo di sviluppo ...
Innanzitutto, una copia locale del repository significa che quasi tutte le azioni di controllo della versione sono molto più veloci. Invece di comunicare con il server centrale tramite una connessione di rete, le azioni Git vengono eseguite sul computer locale. Ciò significa anche che puoi lavorare offline senza modificare il tuo flusso di lavoro.
Poiché ogni collaboratore ha essenzialmente un backup dell'intero progetto, il rischio di un arresto anomalo del server, un repository danneggiato o qualsiasi altro tipo di perdita di dati è molto inferiore a quello dei sistemi centralizzati che si basano su un unico punto di accesso.
Ogni copia di un repository Git, sia locale che remoto, conserva la cronologia completa di un progetto. Avere un ambiente di sviluppo completo e isolato offre a ciascun utente la libertà di sperimentare nuove aggiunte prima di ripulirle in commit puliti e pubblicabili.
Una cronologia completa per ogni sviluppatore significa anche a divergente cronologia per ogni sviluppatore. Non appena esegui un singolo commit locale, non sei sincronizzato con tutti gli altri sul progetto. Per far fronte a questa enorme quantità di ramificazioni, Git è diventato molto bravo a fondere linee di sviluppo divergenti.
Questa lezione rappresenta un capitolo da Git in modo succinto, un eBook gratuito dal team di Syncfusion.