In questi ultimi due numeri di GURU abbiamo trattato in modo piuttosto esteso i vantaggi e gli scenari di utilizzo di Git. Un aspetto molto importante per sfruttare al meglio questa tecnologia è il client scelto.

Abbiamo quindi deciso di testare una selezione di client Git con interfaccia grafica, sottoponendoli ad una sequenza di passaggi uguale per tutti, in modo da simularne una esperienza d’uso tipica.

Selezione e procedura

Esistono numerosissimi client Git grafici, ma la nostra selezione ci ha portato a confrontarne complessivamente otto. Una presenza così massiccia sta ad indicare una grande attenzione da parte degli sviluppatori, rispetto a questo strumento, che vede progetti imponenti come GitKraken, scontrarsi con soluzioni iper semplificate come Tortoise Git.

A parte Ungit, che fa categoria a parte in quanto web-based, abbiamo scelto prodotti con il supporto almeno a Windows e Mac, mentre l’ambiente Linux non è previsto da tutti.

La procedura replicata in tutti i casi è piuttosto basilare, ma rispecchia gli utilizzi imprescindibili di questi strumenti, al di là delle funzioni estremamente avanzate che molti di essi supportano. La prima fase è la clonazione di un repository, seguita da una panoramica della dashboard a progetto avviato, l’aggiunta di una branch e l’invio di un commit.

comparison evo

Caso per caso: in ordine alfabetico

Fork

Fork è il primo della lista, si tratta di un applicativo disponibile per PC e MacOS e si presenta con una interfaccia semplice e piuttosto chiara. Le operazioni di base sono subito a portata di mano, così come il controllo e la navigazione tra i vari rami del progetto e l’aggiunta di nuovi repository è praticamente immediata. Naturalmente è possibile anche aprire repository già clonati localmente o aggiungerne di nuovi.

Muoversi tra i vari stadi è facile e la struttura grafica della dashboard e della lista dei commit non mette mai in difficoltà. Sotto al pannello principale ci sono tre tab che racchiudono altrettante funzioni: l’anteprima del commit selezionato, la lista delle variazioni e il file manager.

Il primo permette di consultare il dettaglio di ogni modifica, con titolo, commento, autore, ed anteprima del file. La sezione Changes permette di valutare visivamente le variazioni applicate al codice e, con il tasto destro, si accede alle opzioni relative a partire dal lancio dell’editor di sistema per effettuare ulteriori modifiche. La sezione File Tree dà accesso alla lista dei file presenti nel repository, con la relativa anteprima visiva e la possibilità di accedere allo storico di ognuno.

Fork dashboard
Fork crea branch
Fork commit

GitBlade

GitBlade esiste per tutte e tre le piattaforme Windows, MacOS e Linux e punta molto sull’essenzialità dell’interfaccia grafica. L’impostazione tuttavia non lo rende particolarmente comodo o intuitivo nell’utilizzo, con una struttura quasi completamente a tab ed una gestione dei vari pannelli non proprio chiara.

Dal tab Graph si accede all’albero dei commit, con la classica rappresentazione a linee e punti colorati. Il doppio clic porta a consultare la singola voce con i dettagli del caso (autore, data di modifica, confronto visivo), mentre il pannello sottostante mostra in tempo reale la console Git con i dettagli di ogni operazione.

L’aggiunta di nuovi repo e la creazione di nuovi branch è immediata, mentre l’uso del commit non è inuitivo come per altre soluzioni.

GitBlade dashboard
GitBlade invia commit

GitExtension

Tra i nomi meno conosciuti, GitExtension ci ha colpiti positivamente per la praticità di utilizzo. L’impostazione generale ricorda a tratti Fork (navigazione tra commit e branch) e GitBlade per quanto riguarda i tab Commit, Diff, File Tree e Console. Con un clic è possibile vedere il dettaglio di ogni invio, con un editor visivo che evidenzia le variazioni rispetto alla versione precedente, un file manager per navigare nel repository e la console per chi volesse impartire i comandi via codice.

Ogni operazione (Commit, Push, Pull etc.) è accompagnata da una finestra di dialogo che mostra la sequenza di comandi in console e permette agli utenti più evoluti di controllare il dettaglio di ogni operazione, oltre che di poter identificare eventuali problemi.

Il tasto destro sulla singola versione porta l’utente ad accedere al relativo menu contestuale che, anche in questo caso, presenta l’editor di testo.

Git Extension clone repository
Git Extension la dashboard
Git Extension commit
Git Extension lista comandi

GitHub Desktop

In questo caso parliamo del client desktop ufficiale di GitHub, che rientra nella top 3 dei client Git insieme a SourceTree e GitKraken. La navigazione è organizzata su due tab principali posti nella fascia del menu, che permettono l’accesso alla lista dei repository ed a quella delle branc: una volta selezionati questi due parametri, la colonna di sinistra si popola di conseguenza con tutti i relativi commit. Selezionando il singolo viene presentata la lista dei file inclusi e il visualizzatore delle differenze.

Da segnalare che GitHub Desktop prevede l’utilizzo di Visual Studio Code come editor predefinito. Mentre personalmente non ho apprezzato la mancanza della vista grafica dello “storyboard” del repository, presente in tutti i client concorrenti. L’aggiunta di un repository, l’inserimento di un nuovo branch e il commit sono realizzabili rapidamente ed in moto intuitivo.

GitHub Desktop dashboard
GitHub Desktop aggiunta repository
GitHub Desktop nuova branch
GitHub Desktop invio commit

GitKraken

Questo client si presenta come uno dei migliori in circolazione ed indubbiamente e quello più impattante dal punto di vista grafico. Questo porta anche ad un discreto impatto a livello di risorse necessarie, dato che tra tutti quelli testati è indubbiamente il più pesante all’avvio. La struttura grafica pone al centro il flusso dei commit e delle branch, con colori accesi e una grafica tanto vistosa quanto completa: basti sapere che per ogni commit appare l’avatar dell’autore. La colonna di sinistra permette di navigare attraverso i rami del repository, mentre il clic sul singolo invio porta all’apertura del relativo dettaglio, con possibilità di aprire il confronto visivo.

I comandi primari sono tutti raggruppati nella parte alta della schermata, mentre le operazioni standard di apertura repo, avvio di un branch e commit sono alla portata anche di un utente alle prime armi. Ho trovato personalmente un po’ caotica la gestione dei conflitti e del merge tra versioni differenti del file, così come l’inserimento in stage dei file per il commit. Molto dettagliata (e colorata) invece la gestione del file history e l’editor comparativo.

Git Kraken dashboard
GitKraken clone repository
Git Kraken nuova branch
Git Kraken invio commit

SmartGit

Questo client è tanto leggero quanto ricco di funzioni, si presenta in una schermata unica con due possibilità di visualizzazione predefinita. Per accedere alla ramificazione del repository è necessario selezionare un branch e fare doppio clic su un commit specifico, mentre di base la dashboard è pensata per tracciare i cambiamenti sui file in uso. Accedendo alla singola voce si apre la finestra di dettaglio con tutte le informazioni relative: autore, relativo avatar, timestamp, dettagli, editor e comparatore visivo delle variazioni. La barra superiore abilita vari tasti e varia in base al contesto e racchiude praticamente tutti i tasti fondamentali in ogni fase dell’utilizzo.

SmartGit aggiungi repository
SmartGit aggiungi branch
SmartGit invia commit

SourceTree

SourceTree è di gran lunga uno dei migliori client in circolazione e dopo questa comparativa, a mio parere anche il migliore in assoluto. Sin dal primo utilizzo ne è chiara la struttura e ogni funzione e tasto è proprio dove te lo aspetti. Le operazioni di base sono subito accessibili dalla barra superiore, mentre i commit e la navigazione tra i branch è immediata ed intuitiva: il doppio clic su un qualsiasi invio porta al relativo dettaglio, comprensivo del visualizzatore delle modifiche.

SourceTree dashboard
SourceTree aggiungi repository
SourceTree aggiungi repository
SourceTree aggiungi branch
SourceTree invia commit

Visual Studio Code

Questo software fa categoria a parte, in quanto si tratta di un editor di codice in grado di supportare l’integrazione con Git, più che un vero e proprio client: necessita infatti del relativo plugin GitHub per poter funzionare.

L’aggiunta del repository non è immediata, ma se avete una copia già in locale è sufficiente aggiungere la cartella al workspace perché il software si configuri in autonomia. Visual Studio Code è esso stesso un editor, quindi i ruoli rispetto al client visti in precedenza sono invertiti: di base si lavora sul codice, mentre dalla barra sinistra si può accedere alla gestione Git tramite la sezione che monitora in tempo reale i cambiamenti sui file. Cliccando sul singolo change si visualizza immediatamente il confronto visivo, in modo chiaro ed evidente, con la possibilità tramite l’esteso menu dedicato di inserire la modifica in stage ed effettuare i vari tipi di commit.

Trattandosi di un editor con integrazione, la navigazione tra i vari branch ed i comandi specifici di Git non sono a portata di mano come negli altri casi: ad esempio il passaggio da un ramo ad un altro del repository non è immediato e non è prevista una visualizzazione panoramica ramificata come per gli altri client.

Visual Studio Code visualizzatore modifiche
Visual Studio Code integrazione con Git

Quale scegliere? Dipende.

Non esiste una risposta assoluta alla domanda su quale sia il client o lo strumento migliore per gestire un progetto con versioning, anche perché ogni utente o sviluppatore incluso in questo flusso ha sicuramente delle preferenze tanto funzionali quanto grafiche a riguardo. A questo si aggiunge un fattore di abitudine e bagaglio di competenze che sicuramente influisce sulla scelta: lavorare in un team che storicamente sfrutta le potenzialità di un client specifico, porterà probabilmente tutti i membri ad orientarsi sullo stesso.

A fronte di una scelta così ampia, il consiglio è quindi quello di scegliere il prodotto più adatto al proprio set di esigenze, magari lasciandosi spingere dalla curiosità e provandone almeno un paio prima di decidere.

L'autore

Lorenzo Bedin

Laureato in Ingegneria delle Telecomunicazioni, svolge l'attività di libero professionista come consulente IT, dopo un periodo di formazione e esperienza in azienda nel ruolo di sistemista Windows e Linux. Si occupa di soluzioni hardware, siti web e virtualizzazione.

banner5

fb icon evo twitter icon evo

Parola del giorno

L'acronimo SoC  (System on a Chip) nasce per descrivere quei circuiti integrati che, all'interno di un singolo chip fisico, contengono un...

>

YAML è un formato utilizzato per serializzare (ovvero salvare oggetti su supporti di memoria ad accesso seriale) dati, in modo...

>

Il termine Edge Computing descrive, all'interno di infrastrutture cloud-based, l'insieme di dispositivi e di tecnologie che permettono l'elaborazione dei dati ai...

>

L'acronimo FPGA  (Field Programmable Gate Array), descrive quei dispositivi hardware formati da un circuito integrato e con funzionalità programmabili tramite...

>

Il termine Agentless (computing) descrive operazioni dove non è necessaria la presenza e l'esecuzione di un servizio software (demone o...

>
Leggi anche le altre...

Download del giorno

Fiddler

Fiddler è un server proxy che può girare in locale per consentire il debug delle applicazioni e il...

>

Adapter Watch

Adapter Watch è uno strumento che permette di visualizzare un riepilogo completo e dettagliato delle informazioni riguardanti una determinata...

>

DNS DataView

DNS Lookup  è un tool a interfaccia grafica per effettuare il lookup DNS dal proprio PC, sfruttando i...

>

SolarWinds Traceroute NG

SolarWinds Traceroute NG è un tool a linea di comando per effettuare traceroute avanzati in ambiente Windows...

>

Network Inventory Advisor

Network Inventory Advisor  è uno strumento che permette di scansionare la rete e acquisire informazioni riguardanti tutti i...

>
Tutti i Download del giorno...

Archivio numeri

  • GURU advisor: numero 19 - luglio 2018

    GURU advisor: numero 19 - luglio 2018

  • GURU advisor: numero 18 - aprile 2018

    GURU advisor: numero 18 - aprile 2018

  • GURU advisor: numero 17 - gennaio 2018

    GURU advisor: numero 17 - gennaio 2018

  • GURU advisor: numero 16 - ottobre 2017

    GURU advisor: numero 16 - ottobre 2017

  • GURU advisor: numero 15 - luglio 2017

    GURU advisor: numero 15 - luglio 2017

  • GURU advisor: numero 14 - maggio 2017

    GURU advisor: numero 14 - maggio 2017

  • GURU advisor: numero 13 -  marzo 2017

    GURU advisor: numero 13 - marzo 2017

  • GURU advisor: numero 12 -  gennaio 2017

    GURU advisor: numero 12 - gennaio 2017

  • 1
  • 2
  • 3
  • Teslacrypt: rilasciata la chiave

    Gli sviluppatori del temuto ransomware TeslaCrypt hanno deciso di terminare il progetto di diffusione e sviluppo e consegnare al pubblico la chiave universale per decifrare i file. Read More
  • Proxmox 4.1 sfida vSphere

    Proxmox VE (da qui in avanti semplicemente Proxmox) è basato sul sistema operativo Debian e porta con sé vantaggi e svantaggi di questa nota distribuzione Linux: un sistema operativo stabile, sicuro, diffuso e ben collaudato. Read More
  • Malware: risvolti legali

    tutti i virus e in particolare i più recenti Ransomware, che rubano i vostri dati e vi chiedono un riscatto, violano la legge. Vediamo insieme come comportarsi, per capire anche se e quando bisogna sporgere denuncia. Read More
  • 1