Guida

GitHub Desktop: come scaricare, installare e usare Git senza riga di comando

Aggiornato: · Skillaria.Top

GitHub Desktop è l'applicazione gratuita di GitHub per Windows e macOS che esegue le operazioni principali di Git con i pulsanti: clone, commit, push, pull, branch, merge e risoluzione dei conflitti. Si scarica dal sito ufficiale desktop.github.com; dopo l'installazione basta accedere al proprio account GitHub e clonare un repository.

Che cos'è GitHub Desktop

GitHub Desktop è un'applicazione gratuita e open source che GitHub distribuisce per Windows e macOS. Mostra in una finestra i file modificati, la cronologia dei commit e i branch, ed esegue i comandi principali di Git con un clic. L'applicazione include una copia interna di Git, quindi non è necessario installare Git separatamente per usarla.

In breve, se vi chiedete «github desktop cos'è»: è un client grafico per Git pensato per GitHub. Permette di clonare i propri repository con un clic, creare pull request e vedere lo stato dei controlli, ma funziona anche con qualsiasi altro repository remoto raggiungibile tramite HTTPS, per esempio su GitLab o su un server proprio.

GitHub Desktop è adatto ai principianti, ai designer, ai tecnici che scrivono documentazione e a chiunque voglia un ciclo semplice e chiaro: modifico, faccio commit, invio. Gli sviluppatori esperti lo usano per vedere in modo chiaro i diff e per committare solo alcune righe, mentre le operazioni complesse le eseguono nel terminale.

Come scaricare GitHub Desktop

L'indirizzo ufficiale per il download è desktop.github.com. Il sito riconosce il vostro sistema e propone il programma di installazione per Windows oppure l'archivio per macOS. Scaricate il programma solo da lì o dalla pagina delle release del repository desktop/desktop su GitHub: pacchetti «github desktop download gratis» offerti da siti terzi possono contenere qualsiasi cosa.

Per Linux non esiste una versione ufficiale. Esiste un fork mantenuto dalla comunità (repository shiftkey/desktop) con pacchetti .deb, .rpm e AppImage, ma si tratta di una build non ufficiale. Su Linux conviene lavorare dal terminale oppure con il client Git integrato nell'editor.

Installazione su Windows

  1. Avviate il file GitHubDesktopSetup scaricato.
  2. Il programma di installazione non chiede nulla: l'applicazione viene installata nel profilo dell'utente corrente e si apre subito.
  3. Non servono i privilegi di amministratore, e gli aggiornamenti vengono scaricati automaticamente.

Per l'installazione sui computer di un'organizzazione esiste un programma MSI separato, che trovate nella documentazione di GitHub Desktop.

Installazione su macOS

  1. Estraete l'archivio zip scaricato.
  2. Trascinate GitHub Desktop nella cartella «Applicazioni» (Applications).
  3. Avviate l'applicazione e confermate l'apertura del programma scaricato da internet.

Esistono build per processori Intel e Apple Silicon; il sito di solito propone automaticamente quella giusta. In alternativa si può installare con Homebrew:

brew install --cask github

Accesso all'account e prima configurazione

Al primo avvio GitHub Desktop propone di accedere a GitHub.com. Premete il pulsante di accesso: si apre il browser, dove confermate che l'applicazione può accedere al vostro account. La password non va inserita nell'applicazione, e l'autenticazione a due fattori si completa nel browser come al solito. Per il server aziendale GitHub Enterprise esiste una procedura di accesso separata.

Poi il programma chiede di configurare Git: nome ed e-mail che compariranno in ogni commit. Sono gli stessi valori user.name e user.email impostati con git config --global, quindi se Git era già configurato i dati vengono compilati automaticamente. Perché i commit siano collegati al vostro profilo su GitHub, usate l'e-mail associata all'account oppure l'indirizzo di servizio nel formato ID+login@users.noreply.github.com.

Questi parametri si cambiano più tardi nelle impostazioni: su Windows dal menu File → Options, su macOS dal menu GitHub Desktop → Settings. Lì si sceglie anche l'editor esterno (per esempio VS Code), il terminale da aprire dall'applicazione e il tema grafico.

Clonare un repository

Clonare significa scaricare una copia del repository remoto con tutta la sua cronologia. In GitHub Desktop si usa la voce File → Clone repository. La finestra ha tre schede: i vostri repository su GitHub.com, i repository di GitHub Enterprise e la scheda URL, dove potete incollare qualsiasi indirizzo, anche di GitLab.

  1. Scegliete un repository dalla lista oppure incollate l'URL.
  2. Indicate la cartella locale (Local path).
  3. Premete Clone e attendete la fine del download.

Lo stesso risultato si ottiene con il comando git clone. Nella pagina del repository su GitHub, nel menu del pulsante Code, c'è la voce Open with GitHub Desktop: apre l'applicazione con l'indirizzo già compilato. Se clonate un repository altrui senza diritti di scrittura, al primo tentativo di inviare modifiche l'applicazione propone di creare un fork.

Una cartella con un progetto Git già esistente si aggiunge con File → Add local repository, mentre un nuovo repository si crea con File → New repository: si può scegliere subito un modello .gitignore, una licenza e creare il README.

Come fare un commit in GitHub Desktop

A sinistra, nella scheda Changes, sono elencati tutti i file modificati; a destra c'è il diff del file selezionato, con le righe eliminate in rosso e quelle aggiunte in verde. La casella accanto al file decide se il file entrerà nel commit. È l'equivalente dell'area di staging e del comando git add.

  1. Togliete le spunte dai file che non volete committare.
  2. Se serve, cliccate su singole righe nel diff per escluderle: così si realizza un commit parziale, come con git add -p.
  3. In basso scrivete una breve descrizione nel campo Summary e, se volete, dettagli nel campo Description.
  4. Premete il pulsante Commit to <nome del branch>.

Il commit viene creato solo in locale e non è ancora arrivato al server. Con git desktop commit è comodo fare commit piccoli e sensati, perché si vede esattamente cosa finisce in ciascuno. Se avete commesso un errore, subito dopo il commit compare in basso il pulsante Undo: annulla l'ultimo commit e riporta le modifiche nella cartella di lavoro, finché il commit non è stato inviato.

I file che non devono entrare nel repository si possono escludere dal menu contestuale del file: la voce di ignorazione aggiunge il file a .gitignore. Per annullare modifiche non ancora committate, nello stesso menu c'è Discard changes: le modifiche vengono eliminate (nel cestino di sistema su Windows e macOS), ma è meglio considerare l'operazione irreversibile.

Push, pull e fetch: sincronizzazione con il server

Il pulsante principale nella barra superiore cambia nome a seconda della situazione. È proprio il punto in cui git desktop push e git desktop pull si eseguono con un solo clic.

Testo del pulsanteCosa succedeComando Git
Publish repositoryil repository locale non è ancora su GitHub: crearlo e inviarlocreazione del remote + git push -u
Publish branchil branch esiste solo in localegit push -u origin branch
Fetch originverificare se ci sono nuovi commit sul servergit fetch
Pull originsul server ci sono nuovi commit da scaricaregit pull
Push originci sono commit locali da inviaregit push

Accanto al testo compare il numero di commit con le frecce verso l'alto e verso il basso: quanti ne servono da inviare e quanti da ricevere. L'applicazione esegue periodicamente un fetch in background, quindi il pulsante Pull compare da solo quando i colleghi hanno inviato qualcosa.

Se il branch si è separato dal server, cioè sia voi sia il server avete nuovi commit, il push viene rifiutato. Prima eseguite Pull origin: Git unisce le modifiche e, se si sovrappongono, nasce un conflitto. Il force push (riscrittura della cronologia) viene proposto solo dopo operazioni che modificano commit già inviati, per esempio dopo un rebase.

Branch: creazione, cambio e checkout

I branch si gestiscono dal menu a discesa Current branch nella barra superiore. Contiene l'elenco dei branch locali e remoti, un campo di ricerca e il pulsante New branch. Selezionare un branch nell'elenco equivale a git desktop checkout: l'applicazione sposta la cartella di lavoro su quel branch. Un branch remoto che non esiste ancora in locale basta selezionarlo: viene creato un branch locale collegato a quello remoto.

Un nuovo branch nasce dal branch corrente o dal branch principale; l'applicazione chiede quale usare se c'è una scelta. Finché non è inviato, il branch esiste solo sul vostro computer, e per questo il pulsante in alto diventa Publish branch. Rinomina ed eliminazione del branch si trovano nel menu Branch o nel menu contestuale del branch nell'elenco; in fase di eliminazione si può scegliere di cancellarlo anche dal server.

Quando il lavoro nel branch è pronto, nel menu Branch c'è la voce Create pull request: si apre il browser sulla pagina di creazione della pull request su GitHub. Revisione e merge avvengono poi sul sito.

Merge e rebase in GitHub Desktop

Per unire un altro branch a quello corrente, scegliete nel menu Current branch la voce Choose a branch to merge into <branch> (la stessa voce è nel menu Branch). L'applicazione mostra in anticipo quanti commit verranno uniti e se ci saranno conflitti. È così che si esegue git desktop merge, cioè un normale git merge.

Nello stesso menu ci sono Squash and merge, che comprime tutti i commit del branch in uno solo, e Rebase current branch: git desktop rebase sposta i vostri commit sopra il branch scelto. Dopo un rebase di un branch già inviato, la cronologia sul server e quella locale divergono, e il pulsante Push diventa Force push origin. Fatelo solo nel vostro branch, dove nessun altro lavora.

Nella scheda History potete trascinare i commit: su un altro branch (è un cherry-pick), uno sull'altro (squash) oppure cambiarne l'ordine. Il rebase interattivo completo non è disponibile: per quello serve git rebase -i nel terminale.

Conflitti di merge

Se le stesse righe sono cambiate in entrambi i branch, durante merge, pull o rebase compare una finestra con l'elenco dei file in conflitto. Per ciascun file potete aprirlo nell'editor esterno oppure scegliere per intero una delle due versioni: la vostra o quella in arrivo.

Nell'editor il conflitto appare nel modo standard:

<<<<<<< HEAD
const limit = 20;
=======
const limit = 50;
>>>>>>> feature/pagination

Tenete la variante giusta, eliminate i marcatori e salvate il file. Quando in tutti i file i marcatori sono scomparsi, GitHub Desktop li segna come risolti e attiva il pulsante per completare il merge: crea il commit di merge. Se qualcosa va storto, nella stessa finestra il pulsante di annullamento interrompe l'operazione: è l'equivalente di git merge --abort.

Git stash in GitHub Desktop

Nella finestra principale non c'è un pulsante «stash», ma il meccanismo esiste. Quando passate a un altro branch con modifiche non committate, l'applicazione chiede cosa farne: lasciarle sul branch corrente oppure portarle sul nuovo. L'opzione «lasciare» nasconde le modifiche nello stash: così funziona git stash in GitHub Desktop.

Potete nascondere le modifiche a mano dal menu contestuale dell'elenco delle modifiche (voce Stash all changes). Tornati sul branch, in fondo alla scheda Changes vedete la riga Stashed changes: lì potete consultare i file nascosti e ripristinarli (Restore) oppure eliminarli.

Limite: GitHub Desktop conserva un solo stash per branch. Se vi servono più voci, usate il terminale per git stash pop con la scelta di una voce specifica o per git stash apply stash@{1}: l'applicazione lo apre nella cartella giusta dal menu Repository.

Git LFS in GitHub Desktop

Git LFS conserva i file binari di grandi dimensioni (video, PSD, modelli) su un server separato, mentre nel repository restano solo dei puntatori. GitHub Desktop supporta LFS: quando clonate o aprite un repository che usa LFS, propone di inizializzare Git LFS, poi scarica e invia automaticamente i file grandi.

Tuttavia nell'interfaccia non si possono indicare i file da tracciare con LFS. Si fa una sola volta nel terminale, e dopo questo git lfs in GitHub Desktop funziona in modo trasparente:

git lfs install
git lfs track "*.psd"
git add .gitattributes
git commit -m "Traccia i file PSD con Git LFS"

Attenzione alle quote: gli account gratuiti GitHub hanno limiti di spazio e di traffico per LFS; i valori aggiornati si trovano nelle impostazioni di fatturazione dell'account.

Reset, revert e cronologia

La scheda History mostra i commit del branch corrente e le modifiche di ciascuno. Dal menu contestuale di un commit sono disponibili:

  • Revert changes in commit — crea un nuovo commit che annulla quello selezionato. È sicuro anche per commit già inviati.
  • Create branch from commit e Create tag — branch o tag da qualsiasi punto della cronologia.
  • Amend commit — per l'ultimo commit: correggere il messaggio o aggiungere file.
  • Reset to commit — nelle versioni recenti dell'applicazione: riporta il branch al commit selezionato conservando le modifiche nella cartella di lavoro, come git reset --mixed.

Un'opzione git desktop reset con eliminazione delle modifiche (git reset --hard) nell'interfaccia non c'è: è una scelta intenzionale, per evitare che un principiante perda il lavoro. Se serve, usate il terminale, e per ritrovare i commit persi cercate con git reflog.

Quando conviene la riga di comando

GitHub Desktop copre il ciclo di lavoro quotidiano, ma molte operazioni non ci sono o sono scomode:

  • rebase interattivo con tutte le azioni, git bisect, git reflog, git worktree;
  • più voci di stash, sottomoduli, configurazione fine dei remote;
  • lavoro su server via SSH e automazione in script e CI;
  • Linux, dove non esiste una versione ufficiale.

Inoltre nei colloqui di lavoro si chiedono proprio i comandi, e capire cosa fanno fetch, merge e rebase aiuta anche con l'interfaccia grafica. L'approccio pratico è conoscere bene la riga di comando e usare l'applicazione dove fa risparmiare tempo: per vedere i diff, fare commit parziali e risolvere i conflitti. Da GitHub Desktop il terminale si apre dal menu Repository, direttamente nella cartella del progetto.

Conclusioni

GitHub Desktop è un modo semplice e gratuito per lavorare con Git su Windows e macOS: scaricatelo da desktop.github.com, accedete al vostro account, clonate un repository, e commit, push, pull, branch e conflitti si fanno con i pulsanti. Per stash, LFS e reset le possibilità sono limitate, e le operazioni complesse restano al terminale. Repository remoti, push, pull e lavoro di squadra con le pull request sono trattati nella pratica nel corso su Git.

Domande frequenti

GitHub Desktop è gratuito?

Sì, l'applicazione è completamente gratuita e distribuita come open source; si paga solo per i piani a pagamento di GitHub, se li volete.

Devo installare Git separatamente per usare GitHub Desktop?

No, nell'applicazione è incluso un proprio Git. Se però volete lavorare anche nel terminale, installate Git per il vostro sistema.

Si può usare GitHub Desktop con GitLab o Bitbucket?

Sì, il repository si può clonare con l'indirizzo HTTPS dalla scheda URL. L'integrazione con le pull request e l'accesso con l'account funzionano solo con GitHub.

GitHub Desktop è disponibile in italiano?

L'interfaccia ufficiale è in inglese. I nomi dei pulsanti sono brevi e corrispondono ai comandi Git, quindi è facile orientarsi.

Perché GitHub Desktop non vede le modifiche a un file?

Di solito il file rientra in una regola di .gitignore oppure è aperta un'altra cartella del repository. Controllate il percorso nel menu Current repository e il contenuto di .gitignore.

Impara l’argomento in video

Questo argomento è trattato in modo approfondito, con pratica, nel corso «Git da zero a sviluppatore sicuro».

Vai al corso