Che cos’è GIT

di Lorenzo Neri

Che cos’è GIT? Funziona come History Channel. È quel sistema che ti permette di condividere i file che vanno a creare il tuo software in modo che i tuoi colleghi ci possano lavorare senza sovrascrivere o far sparire il tuo stesso lavoro. In questo articolo scoprirai non solo che cos’è GIT ma anche perché è così maledettamente importante.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

In questo articolo scoprirai che cos’è Git, a che cosa serve e come funziona.

Ogni cosa che fate tu e i tuoi colleghi se la ricorda e ve la racconta e potete vederla di nuovo.

GIT permette questo. Spesso confuso con GitHub, GIT è un sistema che permette proprio quello che ho scritto prima.

Se usiamo una definizione scritta in #tecnichese:

GIT è un sistema distribuito di versionamento del software

Risultato immagini per meme coffee cup feet

Che diavolo vuol dire?

Partiamo dalle basi: ti sarà capitato almeno una volta nella vita di dover lavorare assieme ad un’altra persona sullo stesso software.

Per lavoro, per l’università, per un hackaton, per puro sfizio, per un progetto super segreto per diventare milionari…

Sarà successo sicuramente questo:

Tu: “Oh va che ho appena finito di scrivere 500 righe per modificare il sistema di invio e-mail, ti carico il file su Google Drive. NON CANCELLARE OK?”

Il tuo collega: “Ah sì, pure io l’ho modificato! Facciamo così: tu caricalo, io lo scarico e applico le modifiche. Ok?”

E da lì, inizia l’inferno.

Righe sovrascritte, pezzi di codice spariti, file che dal nulla diventano vuoti: il bello è che nessuno sa chi ha fatto cosa!

Ti piacerebbe scoprire un sistema che permette di evitare tutto questo?

Non solo, ecco cosa ti offro:

  • C’è un punto dove tutti i file del vostro progetto sono al sicuro
  • Quando una persona ci vuole lavorare, se lo scarica sul suo computer e modifica i file a suo piacimento
  • Se due persone lavorano sullo stesso identico file e vogliono applicare le modifiche al progetto, il sistema riconosce in automatico le modifiche di entrambi e le unisce senza far sparire nulla!
  • Ti rendi conto che l’ultima modifica che hai fatto fa veramente schifo. Hai le gonadi talmente girate che vuoi mandare tutto all’aria e tornare da zero!
    Ma no, fermati! Puoi fare di meglio!

    Questo sistema ti permette di tornare in un punto precedente delle tue modifiche e annullare gli ultimi effetti.
  • Né tu né i tuoi colleghi sapete come aggiungere una cosa al vostro progetto.
    Sapete però che rischia di compromettere l’intero progetto. Decidete di farvi aiutare da una persona esterna.

    Questa, può lavorare al progetto, aggiungere la modifica al progetto e fare i informatico in modo tale da non compromettere il vostro lavoro.

    Nel frattempo voi, ci lavorate e non avete il timore di fare disastri.

“Che mondo magico è mai questo Lorenzo?”

Questo mondo magico è GIT.

Torniamo alla definizione di prima:

  • Distribuito: ogni persona ha modo di crearsi una copia in locale del progetto e lavorarci senza dover bloccare, sovrascrivere o far sparire il lavoro degli altri. Per questo è distribuito!
  • Versionamento del software: prima ho parlato di “tornare indietro” e del famoso aiutante esterno che implementa una funzionalità al vostro progetto.

    Questo si intende per versionamento. Un repository (rimani con me, scoprirai cosa vuol dire questa brutta parolona!), ogni volta che aggiungete una modifica al progetto, ne tiene traccia come un diario.

    Ma è un diario particolare: ad esempio, oggi 18 Dicembre 2019 c’è Marco che ha scritto “oggi ho sistemato il login su master”, ma al contempo c’è Andrea che ha messo “oggi ho risolto i bug legati alla dashboard su feature”.

Insomma: che cos’è un repository?

Repository: è il famoso punto che raccoglie tutti i file del progetto e la storia delle modifiche.

In altre parole, quando create un progetto e decidete di usare GIT, voi state creando un repository.

Prima ho usato quelle due parole strambe: “master” e “feature”.

Il repository, ogni volta che aggiungete una modifica volete “salvarla”, quello che state facendo è un “commit”.

Ma che cos’è un commit?

Il commit è quella operazione che permette in un repository di registrare le modifiche fatte da una persona.

Questo commit però, è particolare:

  • Registra quali righe sono state aggiunte, modificate, cancellate su ogni singolo file dove l’utente in questione ha effettivamente fatto queste variazioni
  • Contiene data, ora, nome utente ed e-mail di colui che ha fatto queste modifiche
  • Contiene un messaggio scritto dall’utente: del resto ci dovrà pur dire che cosa ha fatto, no?

I commit seguono una linea temporale:

Al punto zero della storia del repository, chiamiamolo “big bang”, ci sarà qualcuno che ha registrato la prima modifica.

Da quel punto, seguiranno le altre.

Tuttavia, può succedere una cosa interessante: ricordate il discorso del diario? Di “feature” e “master”?


All’interno di un repository io posso creare più storie parallele

A cosa servono?

Servono a lavorare in maniera parallela su cose diverse, ma sempre sullo stesso progetto.

Queste storie parallele, fatte di commit, sono i branch.

Cosa sono i branch in un repository?

Proprio questo: sono linee temporali dove le modifiche al progetto vengono registrate senza interferire con le altre.

Spesso viene confuso con GitHub e GitLab.

In realtà GitHub e GitLab, sono due servizi che si basano su GIT.

Che cos’è GitHub? A che cosa serve GitLab?

Innanzitutto offrono lo stesso servizio con piccole variazioni l’uno rispetto all’altro.

Tutto quello che ti ho raccontato fino ad ora, per poter funzionare e permettere ad altre persone di lavorare sui propri computer, è necessario mettere il repository a disposizione di tutti.

E come si fa?

Bisogna metterlo in rete, con i giusti sistemi di sicurezza e permessi.

Ecco: GitHub e GitLab ti permettono di creare repository affinché tu assieme ai tuoi colleghi possiate lavorarci assieme.

Arrivati alla fine di questo articolo avrai capito sicuramente che cos’è GIT, ma un dubbio potrebbe rimbalzare nella tua mente.

GIT è difficile da imparare?

No, non lo è.

Non solo, fa parte di quegli strumenti da imparare #che faranno la differenza nella tua carriera!

Innanzitutto: Perchè è nato GIT?

Hai presente Linux? 

Sai com’è stato creato?

Linus Torvalds ha pensato che fosse cosa saggia permettere a più persone di lavorare su Linux.

Infatti, Linux è il risultato di migliaia di informaticoe che hanno collaborato assieme.

GIT è nato proprio per questo. 

Era l’unico modo per dare una possibilità ai migliaia di volontari di collaborare in modo funzionante e dar vita a Linux.

Molti sono impauriti e si bloccano perché GIT si basa sui quei comandi strani da scrivere a console.

Ti posso assicurare che nonostante sia alquanto “criptico”, non lo è affatto.

Cosa puoi scoprire e imparare su GIT

Sei arrivato fin qui? Oh, wow, fantastico! Una volta capito che cos’è git, sarebbe giusto anche sedare la tua sete di conoscenza vero?

Devi sapere che su questo blog puoi trovare tantissimi articoli che ho scritto sul mondo di GIT che sono stati e sono tutt’ora di grande aiuto per tante persone come te che hanno visitato il mio blog!

SCOPRI TUTTI GLI ARTICOLI SU GIT CON UN CLICK QUI

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più