GitHub CLI (abbreviato gh) è uno strumento da riga di comando che ti consente di lavorare con GitHub direttamente dal tuo terminale. Con esso, puoi gestire repository, issue, pull request, release e altre entità senza accedere all’interfaccia web di GitHub.
CLI è comodo per sviluppatori, ingegneri DevOps e chiunque automatizzi il lavoro con GitHub o preferisca il terminale al browser.
- Installazione
- Autorizzazione
- Funzionalità principali
- Comandi utili
- Vantaggi di GitHub CLI
- 1. Autorizzazione
- 2. Controlla lo stato dell’autorizzazione
- 3. Clona repository
- 4. Crea nuovo repository
- 5. Visualizza le informazioni del repository
- 6. Elenca le issue
- 7. Crea issue
- 8. Crea Pull Request
- 9. Visualizza e controlla PR
- 10. Unisci PR con eliminazione del branch
- 🔑 Autorizzazione e impostazioni
- 📂 Repository
- 📝 Issue
- 🔀 Pull Request
- 📦 Release
- 📜 Gist
- ⚙️ Workflow (GitHub Actions)
Installazione
GitHub CLI è supportato su Windows, macOS e Linux.
- Linux (Ubuntu/Debian):
sudo apt install gh
- macOS (tramite Homebrew):
brew install gh
- Windows (tramite Winget):
winget install --id GitHub.cli
Dopo l’installazione, controlla la versione:
gh --version
Autorizzazione
Per accedere a repository privati e azioni, devi autorizzarti:
gh auth login
CLI ti offrirà:
- scegliere GitHub.com o GitHub Enterprise
- metodo di autorizzazione (browser, token, SSH)
- salvare i dati per le esecuzioni successive
Controlla lo stato con il comando:
gh auth status
Funzionalità principali
Lavorare con i repository
Creazione di un nuovo repository:
gh repo create my-project
Clonazione:
gh repo clone owner/repo
Visualizzazione delle informazioni:
gh repo view owner/repo
Issue
Creazione di un’issue:
gh issue create --title "Bug: crash all'avvio" --body "Passi per riprodurre..."
Elenco delle issue:
gh issue list
Visualizzazione di un’issue specifica:
gh issue view 42
Pull Request
Creazione di una pull request:
gh pr create --base main --head feature-branch --title "Nuova funzionalità" --body "Aggiunta nuova funzionalità"
Visualizzazione:
gh pr list
gh pr view 123
Unione:
gh pr merge 123 --squash --delete-branch
Actions (CI/CD)
Esecuzione di workflow:
gh workflow run build.yml
Visualizzazione dello stato:
gh run list
Comandi utili
| Comando | Scopo |
|---|---|
gh help | elenca tutti i comandi |
gh alias set co "pr checkout" | crea un alias per un comando rapido |
gh gist create file.txt | carica file come gist |
gh release create v1.0.0 | crea una release |
Vantaggi di GitHub CLI
- Risparmio di tempo: lavora con GitHub senza browser.
- Scripting: comodo da automatizzare in bash/PowerShell.
- Integrazione con CI/CD.
- Strumento unico per comandi e API GitHub.
Ottimo 🚀 Allora, creiamo una checklist “TOP-10 comandi GitHub CLI per l’uso quotidiano”. Può essere usata come cheat sheet.
✅ TOP-10 comandi GitHub CLI per l’uso quotidiano
1. Autorizzazione
gh auth login
🔑 Autorizza GitHub tramite browser o token. Utile per la prima configurazione o il cambio di account.
2. Controlla lo stato dell’autorizzazione
gh auth status
📌 Controlla se la CLI è connessa a GitHub e come.
3. Clona repository
gh repo clone owner/repo
📥 Clonazione rapida del repository senza cercare un link nell’interfaccia web.
4. Crea nuovo repository
gh repo create my-project
🆕 Crea repository direttamente dal terminale (locale + su GitHub).
5. Visualizza le informazioni del repository
gh repo view --web
📖 Mostra la descrizione e le impostazioni del repository. L’opzione --web apre immediatamente la pagina nel browser.
6. Elenca le issue
gh issue list
📋 Comodo per visualizzare attività e bug direttamente nel terminale.
7. Crea issue
gh issue create --title "Bug: accesso fallito" --body "Passi per riprodurre..."
🐞 Crea una nuova attività o un rapporto di bug.
8. Crea Pull Request
gh pr create --base main --head feature-branch --title "Nuova funzionalità" --body "Descrizione..."
🔀 Strumento principale per il lavoro di squadra: apertura di una Pull Request dal tuo branch.
9. Visualizza e controlla PR
gh pr view 123
👀 Visualizza Pull Request con commenti e stati di controllo. Puoi aggiungere --web per aprire nel browser.
10. Unisci PR con eliminazione del branch
gh pr merge 123 --squash --delete-branch
✅ Unisci Pull Request + elimina branch in un solo passaggio.
📌 GitHub CLI — Cheat Sheet
🔑 Autorizzazione e impostazioni
| Comando | Scopo | Esempio |
|---|---|---|
gh auth login | Autorizzazione (browser, token, SSH) | gh auth login |
gh auth status | Controlla la connessione attuale | gh auth status |
gh alias set co "pr checkout" | Crea un alias per un comando | gh alias set co "pr checkout" |
gh config get | Ottieni le impostazioni della CLI | gh config get editor |
📂 Repository
| Comando | Scopo | Esempio |
|---|---|---|
gh repo create | Crea repository | gh repo create my-project |
gh repo clone | Clona repository | gh repo clone hypo69/hypotez |
gh repo view | Info sul repository (o apri nel web) | gh repo view --web |
gh repo fork | Forka repository | gh repo fork owner/repo |
📝 Issue
| Comando | Scopo | Esempio |
|---|---|---|
gh issue list | Elenca attività | gh issue list |
gh issue create | Crea issue | gh issue create --title "Bug" --body "Steps..." |
gh issue view | Visualizza issue | gh issue view 42 |
gh issue close | Chiudi issue | gh issue close 42 |
🔀 Pull Request
| Comando | Scopo | Esempio |
|---|---|---|
gh pr list | Elenca PR | gh pr list |
gh pr create | Crea PR | gh pr create --base main --head feature-x |
gh pr view | Visualizza PR | gh pr view 123 --web |
gh pr checkout | Passa al branch PR | gh pr checkout 123 |
gh pr merge | Unisci PR | gh pr merge 123 --squash --delete-branch |
📦 Release
| Comando | Scopo | Esempio |
|---|---|---|
gh release list | Elenca release | gh release list |
gh release create | Crea release | gh release create v1.0.0 --notes "First release" |
gh release upload | Aggiungi file a release | gh release upload v1.0.0 build.zip |
gh release view | Visualizza release | gh release view v1.0.0 |
📜 Gist
| Comando | Scopo | Esempio |
|---|---|---|
gh gist create | Crea gist | gh gist create file.txt |
gh gist list | Elenca gist | gh gist list |
gh gist view | Visualizza gist | gh gist view abc123 |
gh gist edit | Modifica gist | gh gist edit abc123 |
⚙️ Workflow (GitHub Actions)
| Comando | Scopo | Esempio |
|---|---|---|
gh workflow list | Elenca workflow | gh workflow list |
gh workflow view | Visualizza workflow | gh workflow view build.yml |
gh workflow run | Esegui workflow | gh workflow run build.yml |
gh run list | Elenca esecuzioni | gh run list |
gh run watch | Guarda esecuzione | gh run watch 123456789 |