[Guida] Muovere i primi passi con il version control system Git [Parte 1]

by Alessandro Russo on

Spesso, qui su LFFL, quando si parla di progetti open source inseriamo un link alla pagina GitHub ufficiale. In questo articolo di ieri, ad esempio, vi ho parlato di un’alternativa open source e P2P chiamata Radicle, anche questa basata sul sistema Git. In questo articolo di oggi voglio fare un’introduzione a Git, per chi magari si avvicina per la prima volta alle sue meccaniche.

Git è uno strumento di collaborazione online

Il ciclo di vita di un progetto è normalmente caratterizzato da una pluralità di interventi volti a migliorarne le caratteristiche o ridurne i bug. Dalle fasi iniziali di programmazione a quelle finali di messa in produzione, infatti, il codice è protagonista di continue modifiche di cui, nel tempo, si deve tener traccia. Il Version Control System serve proprio ad organizzare, senza troppa fatica, le varie versioni e modifiche apportate ad un progetto.


Git è un sistema di controllo delle versioni, distribuito, progettato per gestire qualsiasi cosa, dai progetti piccoli a quelli molto grandi, in maniera veloce ed efficiente. Quando parlo di sistema distribuito, intendo dire che gli utenti di Git, non solo inviano il loro codice a una base centralizzata per registrare le modifiche apportate, ma a loro volta scaricano la propria copia locale della cronologia completa. Per aggiungere una nuova connessione ad un server remoto, utilizzate:

git remote add [nome del repository] [url del server]

Branch e merge

Quando uno sviluppatore aggiunge una modifica o corregge un errore, crea un nuovo branch. Le nuove modifiche apportante appartengono solo a questo ramo e non vanno a intaccare il vecchio codice con eventuali errori o problemi di stabilità. Un esempio può sicuramente chiarire il tutto.

  • Master;
  • Pay/Bitcoin.

Immaginate di avere un progetto, ad esempio un e-commerce, di cui il ramo principale, master, contiene il codice stabile che verrà spinto via via in produzione. Ipotizzate ora di voler aggiungere una nuova funzionalità, ad esempio un metodo per accettare pagamenti in bitcoin. Per creare questo nuovo ramo, ed iniziare questo sviluppo parallelo, darò le istruzioni:

git branch pay/bitcoin		#crea nuovo ramo
git checkout pay/bitcoin	#passa al nuovo ramo

[Guida] Muovere i primi passi con il version control system Git [Parte 1]

Una volta completato lo sviluppo, ed effettuati positivamente tutti i test del caso, andremo poi a fondere il ramo secondario con quello principale, per portare la nuova funzionalità in produzione:

git commit		#salva le modifiche effettuate al ramo pay/bitcoint
git checkout master	#torna al ramo master
git merge pay/bitcoint	#effettua la fusione dei due rami

Collaborazione online

Git, come vi anticipavo, è uno strumento collaborativo. Questo significa che non siamo i soli ad effettuare le modifiche ad un determinato progetto. Ipotizzate che ad esempio un vostro collega aggiunga una nuova funzionalità mentre voi lavoravate a quella su bitcoin. È opportuno, quindi, andare a scaricare il codice dal server remoto:

git pull #scarica il codice aggiornato e fa il merge in automatico

Parallelamente, per inviare le proprie modifiche al server centrale potete utilizzare git pull, avendo l’accortezza di effettuare sempre prima un pull prima di un push, per evitare di sovrascrivere le modifiche altrui.

Siamo giunti a conclusione di questa prima parte, più teorica. Nella seconda parte della guida vi mostrerò come installare Git, configurarlo ed interagire effettivamente un con sistema centralizzato come GitHub.

[Guida] Muovere i primi passi con il version control system Git [Parte 1]Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.

L'articolo [Guida] Muovere i primi passi con il version control system Git [Parte 1] sembra essere il primo su Linux Freedom.

Leggi il contenuto originale su Linux Freedom

Written by: Alessandro Russo