GitHub CLI (gh)
GitHub CLI är ett kommandoradsverktyg som låter dig arbeta med GitHub direkt från terminalen. Det är viktigt att förstå att gh (GitHub CLI) är inte samma sak som git - Git hanterar versionshantering lokalt, medan GitHub CLI låter dig interagera med GitHub-plattformen (issues, pull requests, repositories, etc.) från kommandoraden. Hur coolt är inte det?
Introduktion
Istället för att öppna webbläsaren och navigera till GitHub.com kan du använda GitHub CLI för att skapa issues, granska pull requests, och mycket mer - allt från din terminal. Men hur skiljer sig detta från vanlig Git? Och varför skulle du vilja använda det?
TL;DR
GitHub CLI (gh) är ett kommandoradsverktyg för att interagera med GitHub-plattformen. Det är inte Git - Git hanterar versionshantering, medan gh låter dig hantera GitHub-funktioner som pull requests, issues, och repositories direkt från terminalen.
När du läst detta ska du kunna
- Förstå skillnaden mellan Git, GitHub och GitHub CLI
- Installera och konfigurera GitHub CLI
- Använda
ghför vanliga GitHub-operationer - Integrera GitHub CLI i ditt C#-utvecklingsarbetsflöde
- Förstå när du ska använda
gitvsgh
Git vs GitHub vs GitHub CLI
Git
- Versionshanteringssystem (lokalt)
- Kommandon:
git commit,git push,git pull, etc. - Hanterar kod-historik
GitHub
- Molnbaserad plattform för Git-repositorier
- Webbaserat gränssnitt
- Issues, PRs, Actions, Projects
GitHub CLI (gh)
- Kommandoradsverktyg för GitHub-plattformen
- Kommandon:
gh pr create,gh issue list,gh repo clone, etc. - Interagerar med GitHub-API
Enkelt uttryckt: Git är för versionshantering, GitHub är plattformen, och GitHub CLI är terminalverktyget för att använda GitHub-funktioner.
Installation
Windows
# Via Winget
winget install --id GitHub.cli
# Via Chocolatey
choco install gh
# Via Scoop
scoop install gh
macOS
# Via Homebrew
brew install gh
Linux
# Debian/Ubuntu
sudo apt install gh
# Fedora/RHEL
sudo dnf install gh
# Arch Linux
sudo pacman -S github-cli
Verifiera installation
gh --version
Autentisering
Innan du kan använda GitHub CLI måste du logga in:
# Logga in (öppnar webbläsare)
gh auth login
# Välj:
# - GitHub.com (inte GitHub Enterprise)
# - HTTPS eller SSH
# - Följ instruktionerna i webbläsaren
# Verifiera att du är inloggad
gh auth status
Grundläggande kommandon
Repository-hantering
# Klona ett repo (använder gh istället för git clone)
gh repo clone CampusMolndalEducation/csharp_cmyh
# Skapa nytt repository
gh repo create mitt-csharp-projekt --public --clone
# Visa information om aktuellt repo
gh repo view
# Öppna repo i webbläsaren
gh repo view --web
Pull Requests
# Lista alla PRs
gh pr list
# Visa detaljer om en specifik PR
gh pr view 123
# Skapa ny PR
gh pr create --title "Lägg till ny funktion" --body "Beskrivning här"
# Skapa PR interaktivt (guided)
gh pr create
# Checka ut en PR för lokal testning
gh pr checkout 123
# Merge en PR
gh pr merge 123
# Granska en PR
gh pr review 123 --approve
gh pr review 123 --request-changes --body "Ändra detta..."
gh pr review 123 --comment --body "Ser bra ut!"
# Se status på CI/CD checks
gh pr checks
Issues
# Lista issues
gh issue list
# Skapa ny issue
gh issue create --title "Bugg: Applikationen kraschar" --body "Beskrivning..."
# Visa detaljer om en issue
gh issue view 42
# Stäng en issue
gh issue close 42
# Återöppna en issue
gh issue reopen 42
# Tilldela issue till någon
gh issue edit 42 --add-assignee @me
# Lägg till labels
gh issue edit 42 --add-label "bug,high-priority"
Workflows (GitHub Actions)
# Lista alla workflows
gh workflow list
# Visa senaste körningar
gh run list
# Visa detaljer om en specifik körning
gh run view 12345
# Trigga ett workflow manuellt
gh workflow run "Build and Test"
# Se loggar från en körning
gh run view 12345 --log
# Ladda ner artifacts
gh run download 12345
C#-specifika exempel
1. Skapa din första Pull Request
Scenario: Du har lagt till en ny metod i din C#-klass och vill skapa en PR.
# 1. Skapa en ny branch för din ändring
git checkout -b add-greeting-method
# 2. Gör dina ändringar (t.ex. lägg till en metod i Program.cs)
# ... editera din C#-fil ...
# 3. Spara ändringarna med git
git add Program.cs
git commit -m "Lägg till Greeting-metod"
# 4. Skicka din branch till GitHub
git push -u origin add-greeting-method
# 5. Skapa PR med GitHub CLI (enkel variant)
gh pr create
# GitHub CLI kommer fråga dig:
# - Title: "Lägg till Greeting-metod"
# - Body: "Lägger till en metod som hälsar användaren"
# - Tryck Enter för att skapa PR
Enklare version - skapa PR direkt:
gh pr create --title "Lägg till Greeting-metod" --body "Ny metod för att hälsa"
2. Kolla vad som händer i projektet
# Se alla öppna pull requests
gh pr list
# Se alla issues (buggar och önskemål)
gh issue list
# Se vad som är tilldelat till dig
gh issue list --assignee @me
3. Testa någon annans kod lokalt
Scenario: Din klasskompis har skapat en PR och du vill testa koden.
# 1. Hämta PR nummer från listan
gh pr list
# 2. Checka ut PR:en lokalt (t.ex. PR #5)
gh pr checkout 5
# 3. Testa koden
dotnet run
# 4. Om det fungerar - godkänn PR:en
gh pr review 5 --approve --body "Testade lokalt, fungerar bra!"
# 5. Om något inte fungerar - lämna kommentar
gh pr review 5 --comment --body "Kan inte bygga projektet, får fel på rad 42"
4. Rapportera en bugg
# Enklaste sättet - interaktivt
gh issue create
# Eller direkt med all info
gh issue create \
--title "Programmet kraschar när man skriver 0" \
--body "Om användaren matar in 0 får vi en DivideByZeroException" \
--label "bug"
5. Klona ett projekt för första gången
# Istället för att kopiera URL från GitHub:
gh repo clone CampusMolndalEducation/csharp_cmyh
# Detta gör samma sak som:
# git clone https://github.com/CampusMolndalEducation/csharp_cmyh.git
Avancerade funktioner
Aliases
Skapa genvägar för kommandon du använder ofta:
# Skapa alias för att visa dina PRs
gh alias set my-prs "pr list --author @me"
# Använd ditt alias
gh my-prs
# Lista alla aliases
gh alias list
GitHub Copilot i CLI
Om du har tillgång till GitHub Copilot:
# Aktivera Copilot suggestions
gh copilot suggest "create a pull request"
# Förklara kommandon
gh copilot explain "gh pr create --draft"
Scripting
GitHub CLI är utmärkt för automation:
#!/bin/bash
# Skript för att merga alla godkända PRs
gh pr list --state open --json number,reviews | \
jq -r '.[] | select(.reviews[].state == "APPROVED") | .number' | \
while read pr; do
echo "Merging PR #$pr"
gh pr merge $pr --auto --squash
done
Git vs gh - När använder jag vad?
| Uppgift | Verktyg | Kommando |
|---|---|---|
| Committa ändringar | git | git commit -m "message" |
| Pusha till GitHub | git | git push |
| Hämta ändringar | git | git pull |
| Skapa branch | git | git checkout -b feature |
| Skapa PR | gh | gh pr create |
| Granska PR | gh | gh pr review 123 |
| Skapa issue | gh | gh issue create |
| Se CI/CD status | gh | gh pr checks |
| Klona repo | Båda | git clone eller gh repo clone |
Tumregel: Använd git för versionshantering, använd gh för GitHub-plattformsfunktioner.
Best Practices
- Kombinera git och gh: Använd båda verktygen tillsammans i ditt arbetsflöde
- Aliases: Skapa aliases för kommandon du använder ofta
- Scripting: Automatisera repetitiva GitHub-uppgifter
- PR-granskning: Granska kod direkt från terminalen innan merge
- CI/CD-övervakning: Använd
gh run watchför att följa builds - Issue-tracking: Håll koll på issues och PRs utan att lämna terminalen
Vanliga användningsfall för nybörjare
Morgonrutin för projektet
# 1. Se vad som är nytt
gh pr list # Vilka pull requests finns?
gh issue list --assignee @me # Vad är jag tilldelad?
# 2. Hämta senaste ändringarna
git pull
# 3. Kolla om dina CI/CD-checks gått bra
gh run list --limit 5
Enkel arbetsprocess
# 1. Skapa branch för din uppgift
git checkout -b min-nya-feature
# 2. Gör dina ändringar i C#
# ... editera kod i Visual Studio ...
# 3. Spara och committa
git add .
git commit -m "Lagt till min feature"
# 4. Skicka till GitHub
git push -u origin min-nya-feature
# 5. Skapa PR (interaktivt - enklast!)
gh pr create
# 6. Öppna PR i webbläsaren för att se den
gh pr view --web
Samarbeta med klasskamrater
# Se vad dina klasskamrater jobbar på
gh pr list
# Checka ut och testa deras kod
gh pr checkout 7
dotnet run
# Ge feedback
gh pr review 7 --comment --body "Ser bra ut! Testade och fungerar."
Hantera buggar
# Rapportera en bugg du hittat
gh issue create --title "Kraschar vid delning med 0"
# Se alla buggar i projektet
gh issue list --label "bug"
# När du fixat en bugg - stäng issue:n
gh issue close 12 --comment "Fixad i PR #15"
Slutsats
GitHub CLI (gh) är ett kraftfullt verktyg som kompletterar Git genom att ge dig tillgång till GitHubs plattformsfunktioner direkt från terminalen. Genom att kombinera git för versionshantering med gh för GitHub-operationer kan du bygga ett effektivt kommandoradsbaserat arbetsflöde för dina C#-projekt.
Kom ihåg:
- Git = Versionshantering (lokalt)
- GitHub = Plattformen (moln)
- GitHub CLI = Terminalverktyg för GitHub-funktioner
För mer information, se huvudsidan om GitHub eller GitHub Actions.