Git GUI: client grafici per Git — TortoiseGit, GitKraken, VS Code e altri
Git GUI è un client grafico che mostra cronologia, rami e modifiche in una finestra invece che nel terminale. Le opzioni più diffuse sono l'integrazione Git di VS Code e degli IDE JetBrains, GitHub Desktop per le attività semplici, TortoiseGit e Git Extensions per Windows, GitKraken e Sourcetree per lavorare visivamente con i rami; tutti funzionano sopra il normale Git.
Che cos'è Git GUI e se serve davvero
Git GUI è un'applicazione grafica per lavorare con Git: al posto dei comandi vedete l'elenco dei file modificati, l'albero dei commit e pulsanti come «Commit», «Push» e «Merge». Sotto il cofano, quasi ogni client Git esegue le stesse operazioni della riga di comando, e molti richiamano semplicemente il git installato nel sistema. Il GUI non è quindi un sistema di controllo versione separato, ma un altro modo di gestire lo stesso repository.
Un client grafico è particolarmente utile per tre compiti: visualizzare cronologia e rami sotto forma di grafo, aggiungere in staging solo una parte delle modifiche (selezionare con il mouse le singole righe per un commit è molto più semplice di git add -p) e risolvere i conflitti in un editor a tre pannelli. Per l'automazione, il lavoro sui server via SSH e la comprensione di ciò che succede davvero, invece, la riga di comando resta insostituibile.
La strategia che molti sviluppatori esperti adottano è conoscere la riga di comando e usare il GUI dove fa risparmiare tempo. Se siete principianti, imparate prima i comandi di base: così i pulsanti di qualsiasi applicazione saranno comprensibili e non misteriosi.
Git gui e gitk integrati
Pochi sanno che Git include già un programma grafico. Il comando git gui apre una semplice finestra Tcl/Tk per preparare i commit: visualizzazione dei diff, aggiunta di file e di singoli frammenti, creazione del commit e push. Il comando gitk mostra invece la cronologia come grafo.
git gui
gitk --all
In Git per Windows entrambi i programmi vengono installati insieme a Git Bash. Su Linux a volte bisogna installarli come pacchetto separato (per esempio git-gui e gitk su Debian e Ubuntu). L'interfaccia è essenziale, ma non serve scaricare nulla e funziona ovunque ci sia Git.
Git in VS Code
Se scrivete codice in Visual Studio Code, potrebbe non servire un programma separato. Il pannello Source Control (Ctrl+Shift+G) permette di aggiungere in staging singoli file e singole righe, fare commit, push e pull, passare da un ramo all'altro e crearne di nuovi, e mostra le modifiche direttamente nell'editor con segni colorati sul margine. I conflitti di fusione si aprono con i pulsanti «Accept Current», «Accept Incoming» e «Accept Both»; nelle versioni recenti è disponibile anche un editor di merge a tre pannelli.
VS Code usa il Git installato nel sistema, quindi prima installate Git: senza di esso il pannello mostra un avviso. Le funzioni di Git in VS Code si ampliano con le estensioni: GitLens aggiunge l'autore di ogni riga (blame), la cronologia dettagliata di un file e il confronto tra rami, mentre Git Graph disegna il grafo dei commit. Alcune funzioni di GitLens sono disponibili solo con abbonamento: verificate che cosa è incluso nella versione gratuita.
Allo stesso modo, gli IDE di JetBrains (IntelliJ IDEA, PyCharm, WebStorm e altri) includono un client Git ricco di funzioni, con grafo dei rami, rebase interattivo, shelve e una comoda risoluzione dei conflitti. Per molti sviluppatori è il client Git principale.
TortoiseGit
TortoiseGit è un client gratuito e open source, disponibile solo per Windows. Non si apre come applicazione autonoma, ma si integra in Esplora risorse: con il clic destro su una cartella compaiono nel menu contestuale Commit, Pull, Push, Show log e Diff. Sulle icone dei file vengono disegnati i simboli di stato: modificato, aggiunto, in conflitto.
TortoiseGit è particolarmente comodo per chi arriva da SVN e ha usato TortoiseSVN, e per chi non è sviluppatore — grafici, redattori tecnici, tester — e deve semplicemente recuperare e inviare file. Per funzionare richiede Git per Windows. Svantaggi: non è multipiattaforma e il grafo della cronologia è meno chiaro di quello dei client specializzati.
Git Extensions
Git Extensions è un altro client gratuito e open source per Windows. A differenza di TortoiseGit, è una finestra completa con grafo dei commit, pannelli per i diff ed elenco dei rami, oltre all'integrazione con Esplora risorse e Visual Studio. Mostra molte operazioni in modo abbastanza vicino ai comandi Git, include una console integrata e supporta i submodule.
Git Extensions si sceglie quando serve un client potente e gratuito per Windows, con un grafo completo, e non serve lavorare su macOS. L'interfaccia è ricca, quindi chi è alle prime armi avrà bisogno di un po' di tempo per abituarsi.
GitHub Desktop
GitHub Desktop è un'applicazione gratuita e open source per Windows e macOS. Punta sulla semplicità: elenco delle modifiche, campo per il messaggio di commit, pulsante di sincronizzazione, selettore dei rami. È integrato a fondo con GitHub — clonare i propri repository con un clic, creare una pull request, accedere con il proprio account — ma funziona anche con qualsiasi altro repository remoto.
GitHub Desktop è un buon primo client per un principiante e una scelta valida per progetti semplici. Le operazioni complesse (rebase interattivo, lavoro con reflog, regolazioni fini delle fusioni) sono limitate o assenti, quindi per quelle servirà il terminale.
GitKraken
GitKraken è un client commerciale multipiattaforma (Windows, macOS, Linux) con uno dei grafi dei commit più chiari. Trascinando un ramo su un altro si può eseguire un merge o un rebase, c'è un editor di conflitti integrato, il supporto a Git Flow, le integrazioni con i principali hosting Git e i tracker delle attività, e l'annullamento dell'ultima operazione con il pulsante Undo.
Esiste una versione gratuita con limitazioni e abbonamenti a pagamento; le funzioni incluse in ciascun piano cambiano, quindi prima di scegliere verificate sul sito ufficiale, per esempio, la possibilità di lavorare con repository privati. GitKraken è apprezzato per la visualizzazione di cronologie complesse; gli svantaggi sono il consumo di risorse e il modello a pagamento per l'uso commerciale.
Sourcetree, Fork, Sublime Merge e client da terminale
Sourcetree di Atlassian è un client gratuito per Windows e macOS con grafo della cronologia, supporto a Git Flow, rebase interattivo e stash. Si integra bene con Bitbucket. Per l'installazione può essere necessario un account Atlassian.
Fork è un client commerciale veloce e pulito per Windows e macOS, con un comodo rebase interattivo e una buona gestione dei conflitti; le condizioni d'uso sono indicate sul sito del produttore.
Sublime Merge, realizzato dagli autori di Sublime Text, è un client molto rapido per Windows, macOS e Linux, vicino per logica alla riga di comando: è facile vedere quale comando Git esegue un pulsante. È distribuito con licenza commerciale, con possibilità di uso di prova.
lazygit e tig sono client per il terminale con interfaccia testuale. lazygit permette di aggiungere in staging singole righe, fare rebase e risolvere i conflitti con i tasti, mentre tig è comodo per sfogliare la cronologia. È la scelta di chi vive nel terminale e lavora sui server via SSH.
Tabella comparativa dei client Git
| Client | Piattaforme | Modello di distribuzione | Punto di forza | Per chi è adatto |
|---|---|---|---|---|
| git gui + gitk | Windows, macOS, Linux | Gratuito, incluso in Git | Nulla da installare | Una rapida occhiata a commit e cronologia |
| VS Code | Windows, macOS, Linux | Gratuito | Git direttamente nell'editor | Sviluppatori che lavorano con VS Code |
| IDE JetBrains | Windows, macOS, Linux | Dipende dall'IDE | Strumenti potenti per rebase e conflitti | Utenti degli IDE JetBrains |
| TortoiseGit | Windows | Gratuito, open source | Integrazione in Esplora risorse | Ex utenti di SVN, non sviluppatori |
| Git Extensions | Windows | Gratuito, open source | Grafo completo e molte funzioni | Utenti Windows esperti |
| GitHub Desktop | Windows, macOS | Gratuito, open source | Semplicità, integrazione con GitHub | Principianti, progetti semplici |
| GitKraken | Windows, macOS, Linux | Commerciale, con versione gratuita | Grafo chiaro, drag-and-drop | Team con cronologie complesse |
| Sourcetree | Windows, macOS | Gratuito | Git Flow, integrazione con Bitbucket | Utenti dell'ecosistema Atlassian |
| Sublime Merge | Windows, macOS, Linux | Commerciale | Velocità, trasparenza dei comandi | Chi apprezza la velocità |
| lazygit | Windows, macOS, Linux | Gratuito, open source | Lavoro nel terminale | Amanti del terminale e di SSH |
Come scegliere il programma per Git
- Lavorate già con VS Code o con un IDE JetBrains — iniziate dal Git integrato. Un'applicazione separata serve solo se vi manca qualcosa.
- Vi serve la massima semplicità — GitHub Desktop.
- Usate Windows e siete abituati a Esplora risorse — TortoiseGit; se vi serve un grafo completo — Git Extensions.
- Cronologia complessa con molti rami, team su sistemi operativi diversi — GitKraken, Sublime Merge o Fork; verificate le condizioni di licenza per l'uso commerciale.
- Vivete nel terminale — lazygit o tig.
Molti client si possono installare contemporaneamente: lavorano sullo stesso repository senza interferire, perché tutte le informazioni sono nella cartella .git. Provate due o tre opzioni su un progetto reale e tenete quella con cui trovate più in fretta ciò che cercate.
Insidie dei client grafici
- Versioni diverse di Git. Alcune applicazioni includono un Git proprio, la cui versione può differire da quella di sistema. Se il comportamento nel GUI e nel terminale non coincide, controllate nelle impostazioni del client quale Git sta usando.
- Operazioni nascoste. Il pulsante «Sync» può significare pull con merge o rebase seguito da push. Scoprite che cosa fa esattamente prima di premerlo su un ramo importante.
- Force push con un clic. Nel GUI è facile riscrivere la cronologia di un ramo remoto. Preferite l'opzione con controllo (l'equivalente di
git push --force-with-lease) e proteggete i rami principali sul server. - Nome ed email. I client li prendono dalla configurazione di Git. Verificate
git config --global user.nameeuser.email, altrimenti i commit fatti dal GUI risulteranno firmati con l'autore sbagliato. - Autenticazione. Il GUI spesso conserva i token separatamente dal Git di sistema. Se il push funziona nel terminale ma non nell'applicazione (o viceversa), il problema è quasi sempre nelle credenziali.
Come far lavorare insieme GUI e riga di comando
La competenza più utile è poter verificare nel terminale ciò che ha fatto il client. Dopo un'operazione poco chiara nell'applicazione, eseguite git status e git log --oneline --graph --all -n 20: vedrete lo stato reale dei rami senza interpretazioni dell'interfaccia. Se qualcosa è andato storto, git reflog mostra dove si trovava HEAD prima del clic e permette di tornare indietro con git reset o git switch.
Molti client mostrano il registro dei comandi Git eseguiti: attivatelo, è il modo migliore per imparare i comandi senza rinunciare a un'interfaccia comoda.
Riepilogo
Git GUI semplifica la lettura della cronologia, i commit parziali e la risoluzione dei conflitti, ma non sostituisce la comprensione dei comandi. Per la maggior parte degli sviluppatori basta il Git integrato in VS Code o nell'IDE; i principianti troveranno comodo GitHub Desktop, gli utenti Windows TortoiseGit o Git Extensions, e per lavorare visivamente con cronologie complesse GitKraken, Sourcetree o Sublime Merge. Installazione di Git, configurazione e uso comodo del terminale li analizziamo in pratica nel corso di Git.
Domande frequenti
Si può lavorare con Git solo tramite un client grafico?
Per le attività quotidiane sì, ma prima o poi si incontra una situazione più semplice da risolvere con un comando, per esempio un ripristino tramite reflog. I comandi di base conviene conoscerli comunque.
Bisogna installare Git separatamente se si usa un client grafico?
Per VS Code, TortoiseGit e Git Extensions serve Git installato. Alcune applicazioni, come GitHub Desktop, includono un proprio Git, ma quello di sistema torna utile per il terminale.
Quale client Git esiste per Linux?
Su Linux funzionano git gui e gitk, VS Code, gli IDE JetBrains, GitKraken, Sublime Merge e i client da terminale lazygit e tig.
È sicuro aprire lo stesso repository in più client?
Sì, tutti i client lavorano con la stessa cartella .git. Evitate solo di eseguire operazioni contemporaneamente, altrimenti uno dei client segnalerà un errore sull'index.lock bloccato.
Questo argomento è trattato in modo approfondito, con pratica, nel corso «Git da zero a sviluppatore sicuro».
Vai al corso