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
- Scegli lβhost - Seleziona
GitHub.com - Protocollo preferito - Scegli
HTTPS(raccomandato) oSSH - Metodo di autenticazione - Seleziona
Login with a web browser - 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
| Flag | Descrizione |
|---|---|
--public | Repository pubblica |
--private | Repository privata |
--clone | Clona subito in locale |
--description "testo" | Aggiunge descrizione |
--gitignore node | Aggiunge .gitignore |
--license mit | Aggiunge 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
| Comando | Descrizione |
|---|---|
gh repo list | Lista le tue repo |
gh repo clone owner/repo | Clona una repo |
gh repo view | Info sulla repo corrente |
gh repo view --web | Apre la repo nel browser |
gh repo fork owner/repo --clone | Forka e clona |
Pull Request
| Comando | Descrizione |
|---|---|
gh pr create | Crea una PR (wizard) |
gh pr list | Lista PR aperte |
gh pr view 123 | Dettagli PR #123 |
gh pr checkout 123 | Checkout del branch PR |
gh pr merge 123 | Mergia la PR |
Issues
| Comando | Descrizione |
|---|---|
gh issue create | Crea una issue |
gh issue list | Lista issue aperte |
gh issue view 42 | Dettagli issue #42 |
gh issue close 42 | Chiude issue #42 |
Workflow (GitHub Actions)
| Comando | Descrizione |
|---|---|
gh run list | Lista run recenti |
gh run view | Dettagli ultimo run |
gh run watch | Watch 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
| Flag | Descrizione |
|---|---|
--base | Branch di destinazione |
--head | Branch sorgente |
--title | Titolo della PR |
--body | Descrizione |
--draft | Crea come draft |
--web | Apre 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