Git (si pronuncia ghit come ghiro, non git come gita!)) è un moderno software per il controllo di versione che consente ai team di collaborare ad uno stesso progetto prevenendo le sovrascritture/cancellazioni accidentali e, più in generale, gestire il ciclo di sviluppo con la massima flessibilità. Si tratta di uno strumento molto articolato, ma per cominciare ad usarlo concretamente bastano pochi concetti-chiave.

Commit! Pull! Push! - Guida rapida Git professionisti impegnati

Puristi ed esperti di Git: questo articolo NON fa per voi. Infatti, è rivolto ai professionisti poco attenti alle più intime meccaniche del tool e molto più ad usarlo per portare a termine il proprio lavoro. Di conseguenza, alcuni concetti sono esposti in modo volutamente superficiale o impreciso di modo da velocizzare l'esposizione. Ciò premesso, eventuali precisazioni rimangono benvenute tramite i commenti.

Concetti di base

Prima di iniziare, è bene capire quattro meccanismi-base di Git (capiti questi, il più è fatto!):

clone: è il "setup" iniziale, da svolgersi una sola volta per ogni progetto. Facendo clone, l'utente "prepara" una cartella sul proprio PC ad ospitare i file del gruppo di lavoro.

commit: è l'operazione da svolgere ogni qual volta si termina di lavorare ad un insieme di documenti. Significa dire "hey, Git, questi sono pronti. Mettili nella coda di quelli da condividere con gli altri". Ogni operazione di commit viene identificata tramite una breve serie di lettere e numeri, detta revision.

push: rende disponibili agli altri membri del team tutti i file "pronti", ovvero quelli che abbiamo incluso nei vari "commit" precedenti.

pull: scarica e integra nella cartella locale le modifiche apportate dai colleghi, ovvero nuovi file/cartelle creati da loro, modifiche a quelli esistenti e cancellazioni.

Strada facendo si incontrano molti altri termini (conflitti, branch, tag, ...) ma per iniziare a lavorare dovete realmente aver compreso solo i quattro appena esposti: clone, commit, push, pull.

Siate anche consci che sono d'uso comune alcuni neologismi per riferirsi a dette operazioni. Preparatevi, quindi, a committare, pushare e invitare i colleghi a pullare per ricevere le novità.

Scegliere il client Git

Di applicazioni per Git ce ne sono a decine, compatibili con Windows, Mac e Linux. Dopo averne provate parecchie, io mi sono trovato particolarmente bene con una chiamata SourceTree realizzata da Atlassian:

Commit! Pull! Push! - Guida rapida Git professionisti impegnati

SourceTree è gratuito anche per scopi commerciali (richiede solo la registrazione), ha un'interfaccia grafica gradevole in italiano ed è disponibile per Windows e Mac (niente Linux, purtroppo).

La guida seguente è incentrata su questo software, ma i concetti esposti valgono per qualsiasi alternativa: in caso SourceTree non fosse di vostro gradimento, date un'occhiata all'articolo "Miglior Client Git: 5+ software ad interfaccia grafica per Windows e Mac".

Ricordate, comunque, che nulla vieta ai vari componenti della squadra di usare client Git differenti (anche se raccomando di evitarlo: se tutti prendono dimestichezza con il medesimo software, diviene più facile aiutarsi vicendevolmente in caso di problemi).

Installare SourceTree

Per prima cosa, scaricate SourceTree da questa pagina ed installatelo con la solita serie di Avanti (non è presente alcuna toolbar o schifezze simili, al momento della prova)

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git sourcetree setup download

Confermato l'invito a creare un file ignore globale, vi verrà offerta la possibilità di inserire le credenziali per uno dei grandi servizi di hosting Git (Bitbucket, GitHub e Stash). Se il vostro team ha scelto di lavorare con una di queste piattaforme, registratvi sul sito del servizio in questione quindi agganciate l'account su SourceTree. In caso contrario, proseguite con Salta il setup.

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git sourcetree setup add account

Rispondete No Alla domanda Caricare la chiave SSH? (eventualmente, potrete farlo in seguito).

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git sourcetree setup ssh

Preparate ora una cartella in una posizione a piacere adibita a contenere il progetto sul vostro disco locale. Per la massima semplicità, è altamente preferibile partire con una cartella vuota (potrete spostarci dentro eventuale lavoro già svolto dopo il clone).

Micro-configurazione

Dalla finestra principale di SourceTree, scegliete la voce di menu Strumenti->Opzioni. Limitatevi a compilare i campi fondamentali Nome completo ed Indirizzo email, impostate la Lingua se non è stata correttamente rilevata in automatico e confermate

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git sourcetree opzioni

Via di clone

Ogni membro del team deve svolgere inizialmente il clone, ovvero l'operazione che "lega" a Git la cartella locale scelta per contenere il progetto. Dall'interfaccia di SourceTree, scegliete il primo pulsante della barra (Clona / Nuovo)

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git sourcetree clone

Dovete ora inserire l'URL del server Git fornitovi dal vostro sistemista. Trascorso qualche istante, probabilmente sarete chiamati ad inserire nome utente e password di accesso al progetto.

Subito sotto, indicate la cartella sul vostro disco locale adibita a contenere tutto quanto.

Procedete cliccando Clona e, a breve, vi ritroverete nella directory scelta tutti i file che fanno parte del progetto.

Modifica e commit

Prendete ora uno dei file appena scaricati nella cartella di lavoro locale (oppure createne uno nuovo) e modificatelo a piacimento. Dopo il salvataggio, tornate a SourceTree e notate che il programma si è "accorto" della novità appena introdotta al progetto. Spuntate la casella di controllo relativa al file modificato, digitate un breve commento nello spazio in basso e premete Commissiona per fare commit

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git sourcetree commit

Il file appena committato è pronto per essere condiviso con gli altri, ma è fisicamente ancora solo sul vostro computer. Potete lavorare e committare ulteriori documenti fino a quando non sarete pronti con una parte consistente di lavorazione.

Push, per condividere con il team

Completata la vostra lavorazione, fate "push" per "sparare" tutto sul server e renderlo disponibile al team. È sufficiente premere il pulsante Invia nella barra in alto e confermare

Commit! Pull! Push! - Guida rapida Git professionisti impegnati

Pull, per scaricare il lavoro degli altri

Chiedete ad un collega di fare una modifica+commit+push dal proprio computer, quindi, sul vostro PC, cliccate sul pulsante Ricevi dalla barra di SourceTree e confermate. Aprite la cartella del progetto e dovreste vedere la novità.

Fate solamente attenzione a non confondere il comando che ci interessa (Ricevi) con il suo "vicino" dal nome simile ma dal risultato differente (Prendi).

Se il push non va a buon fine...

Una situazione nella quale vi imbatterete praticamente subito è quella in cui il push viene negato. Purtroppo, il client non mostra un chiaro messaggio d'errore ma, andando a consultare il log completo, noterete un'indicazione sulla falsariga di Updates were rejected because the tip of your current brench is behind its remote counterpart

Commit! Pull! Push! - Guida rapida Git professionisti impegnati - git error push behind

Questo giro di parole sta a significare che qualcuno ha fatto un push prima di voi. Di conseguenza, per procedere, dovete prima fare un ulteriore pull e, subito dopo, riprovare il push. Tutto qui.

Buon lavoro!

Lo scopo di questa guida era di esplorare le operazioni quotidiane più comuni, ma Git è un sistema estremamente articolato e completo: il libro "ufficiale" gratuito Pro Git è il punto di arrivo per chi volesse andare più in profondità, mentre il tag "Git" di TurboLab.it raccoglierà i vari approfondimenti proposti in futuro dal nostro sito.

Hai provato Git? come ti sei trovato? consigli per chi inizia ad usarlo ora? i commenti sono a disposizione per raccontarci la tua esperienza.