Guida: Git, cos’è e come usarlo, spiegato semplicemente

5 Febbraio 2019

Che cos’è Git e a cosa serve

Git è un sistema che consente, tra le tante cose, il controllo delle versioni e di far collaborare più developer su uno stesso progetto contemporaneamente.

Grazie a Git, ogni volta che si lavora su un progetto e si fanno dei cambiamenti a dei file o alla struttura è possibile dare un ID, un nome e una descrizione a questo set di cambiamenti. Questa cosa si chiama commit.

È anche possibile creare diverse “versioni” dello stesso progetto, ognuna delle quali avrà le proprie commit. Queste versioni si chiameranno branch, ossia dall’inglese rami, che si possono staccare dall’albero principale (tree) delle modifiche, chiamato master.

Facciamo un esempio:

Quelli che vedi qui sopra sono 3 commit avvenuti il 3 Febbraio nell’albero principale master.

  • Uno con ID c9c037be e titolo Initial commit. Questo viene creato automaticamente da Gitlab (tra poco ti spiego cos’è).
  • Uno con ID 9ff2c260 e titolo Creazione file index.html.
  • Uno con ID d0198cd1 e titolo Modifica file index.html.

I puntatori di Git

Al momento la modifica più recente di questo tree è quella con ID d0198cd1, quindi l’ultima che ti ho elencato. Si dice quindi che il puntatore di questo progetto si trova all’ID d0198cd1.

Questo progetto in particolare si trova online su Gitlab.com, che è una delle tante repository (spazio online) che puoi utilizzare per ospitare il codice, il set dei cambiamenti, i branch e così via.

Altre repository, che forse potresti aver sentito, includono GitHub e BitBucket.

In questo articolo io uso appunto GitLab, che consente di crearne sia di pubbliche (quindi il codice è visibile a tutti) sia di private (codice accessibile solo su invito) completamente gratis.

Naturalmente, il fatto che io su GitLab abbia queste commit significa che da qualche parte avrò scritto del codice e lo avrò caricato (caricare il codice dal computer alla repository è un’operazione definita push; il contrario si dice pull).

Infatti, sul mio computer, io ho i file del progetto, e anche sul mio computer stesso c’è un puntatore, anch’esso sull’ultima modifica fatta. Quindi i puntatori che ho sul mio computer e su Gitlab sono “allineati“.

Volendo, con qualche comando un po’ più complesso, potrei fare in modo che il progetto che ho sul mio computer torni indietro nel tempo spostando i puntatori, magari a quando il file index.html era stato semplicemente creato (9ff2c260) e non modificato (d0198cd1). Questa è la potenza di Git, nonché uno dei motivi per cui viene chiamato sistema di version control.

Collaborare su un progetto

Inizialmente, inoltre, ti ho detto che un altro vantaggio di Git è quello di far lavorare sullo stesso progetto più programmatori contemporaneamente senza far andare in conflitto le modifiche che vengono fatte. Come si fa?

Facciamo finta che vogliamo lavorare alla versione 2 del nostro progetto e di aver bisogno dell’aiuto di 3 programmatori.

Io che sono a capo del progetto staccherò un branch da master, il tree principale, chiamandolo version2, duplicando il codice e lavorando su quel duplicato.

Si creeranno quindi due branch:

  • master, che contiene le commit del progetto “finale”, quello che sarà rilasciato al pubblico.
  • version2, che contiene le commit che porteranno il progetto alla versione 2.

Tramite GitLab, inviterò al branch version2 i tre programmatori, che potranno fare le loro commit.

Ovviamente queste commit vengono monitorate, infatti non tutte saranno integrate nel codice del progetto, ma i programmatori potranno fare delle pull request.

Pull request significa: “io, programmatore A, ho fatto delle modifiche. Ecco il mio commit. Vorrei pushare il mio codice e aggiornare il branch version2. Potete accettarlo e pullare il mio codice?”

Ecco, a leggerlo così fa quasi ridere, ma è effettivamente quello che succede.

In ogni caso, alla fine di tutto, version2 si sarà aggiornato commit dopo commit. L’amministratore della repository, dopo un’attenta revisione, potrà riattaccare questo branch al suo tree master. Questa operazione si chiama merge, ossia dall’inglese unione.

6 risposte

  1. Grazie mille.. se sapevo l’avrei letto prima del colloquio di ieri.. me l’hanno chiesto e non lo sapevo.. e non mi hanno preso 😒😅

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *