GUIDA πŸ“– 5 min lettura

GitHub CLI - Guida Completa

Padroneggia gh: comandi essenziali, workflow, alias e integrazioni avanzate

GitHub CLI - Guida Completa

Installazione

Windows

winget install GitHub.cli

ℹ️ Dopo l'installazione

Chiudi e riapri il terminale per aggiornare il PATH.

macOS

brew install gh

Autenticazione

gh auth login

Procedura guidata

  1. Scegli l’host - Seleziona GitHub.com
  2. Protocollo preferito - Scegli HTTPS (raccomandato) o SSH
  3. Metodo di autenticazione - Seleziona Login with a web browser
  4. Copia il codice - Incollalo nella pagina web che si apre

Verifica autenticazione

gh auth status

βœ… Output atteso

github.com
  βœ“ Logged in to github.com as TUOUSERNAME
  βœ“ Git operations for github.com configured to use https protocol.

Creare una nuova repository

Opzione 1: Crea repo e clona in locale

# Crea repo pubblica
gh repo create nome-progetto --public --clone

# Crea repo privata
gh repo create nome-progetto --private --clone

Opzione 2: Wizard interattivo

gh repo create

Opzioni utili

FlagDescrizione
--publicRepository pubblica
--privateRepository privata
--cloneClona subito in locale
--description "testo"Aggiunge descrizione
--gitignore nodeAggiunge .gitignore
--license mitAggiunge licenza

Esempio completo

gh repo create mio-progetto \
  --public \
  --clone \
  --description "Il mio progetto Node.js" \
  --gitignore node \
  --license mit

Push di un progetto locale esistente

1

Entra nella cartella del progetto

cd /percorso/al/tuo/progetto
2

Inizializza git (se non giΓ  fatto)

git init
3

Aggiungi e committa i file

git add .
git commit -m "Initial commit"
4

Crea la repo su GitHub e collega

# Crea repo e imposta come remote
gh repo create --source=. --public --push

# Oppure con nome custom
gh repo create nome-repo --source=. --private --push

βœ… Fatto!

Il comando --push fa automaticamente il push del branch corrente.


Comandi utili quotidiani

Repository

ComandoDescrizione
gh repo listLista le tue repo
gh repo clone owner/repoClona una repo
gh repo viewInfo sulla repo corrente
gh repo view --webApre la repo nel browser
gh repo fork owner/repo --cloneForka e clona

Pull Request

ComandoDescrizione
gh pr createCrea una PR (wizard)
gh pr listLista PR aperte
gh pr view 123Dettagli PR #123
gh pr checkout 123Checkout del branch PR
gh pr merge 123Mergia la PR

Issues

ComandoDescrizione
gh issue createCrea una issue
gh issue listLista issue aperte
gh issue view 42Dettagli issue #42
gh issue close 42Chiude issue #42

Workflow (GitHub Actions)

ComandoDescrizione
gh run listLista run recenti
gh run viewDettagli ultimo run
gh run watchWatch live del run

Gist

gh gist create file.js --public     # Crea gist pubblico
gh gist create file1.js file2.py    # Multipli file
gh gist list                         # Lista i tuoi gist

Workflow PR Completo

Workflow tipico per creare una Pull Request da un branch di sviluppo.

1

Prepara il branch

# Assicurati di essere sul branch giusto
git checkout develop
git pull origin develop
2

Commit e push

git add .
git commit -m "add: nuova feature"
git push origin develop
3

Crea la PR

# PR da develop verso main
gh pr create --base main --head develop --title "Titolo PR"

# Con body descrittivo
gh pr create --base main --head develop \
  --title "Add: nuova feature" \
  --body "Descrizione delle modifiche"
4

Mergia la PR

# Merge standard (dopo review)
gh pr merge --merge

# Merge come admin (bypassa review)
gh pr merge --merge --admin

# Squash merge (tutti i commit in uno)
gh pr merge --squash

βœ… Comando Veloce

Crea e mergia in un solo comando:

gh pr create --base main --head develop --title "Update" && gh pr merge --merge --admin

Opzioni PR utili

FlagDescrizione
--baseBranch di destinazione
--headBranch sorgente
--titleTitolo della PR
--bodyDescrizione
--draftCrea come draft
--webApre nel browser per completare

Troubleshooting

⚠️ gh non riconosciuto come comando

Windows: Chiudi e riapri il terminale. Se non basta, fai logout/login.

macOS: Esegui source ~/.zshrc o riapri il terminale.

⚠️ Errore di autenticazione

Prova a riautenticarti:

gh auth logout
gh auth login

Comandi di debug

gh auth status      # Stato autenticazione
gh --version        # Versione installata
gh config list      # Configurazione attuale

# Aggiorna gh
winget upgrade GitHub.cli   # Windows
brew upgrade gh             # macOS

Documentazione ufficiale: cli.github.com/manual