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 gh för vanliga GitHub-operationer
  • Integrera GitHub CLI i ditt C#-utvecklingsarbetsflöde
  • Förstå när du ska använda git vs gh

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?

UppgiftVerktygKommando
Committa ändringargitgit commit -m "message"
Pusha till GitHubgitgit push
Hämta ändringargitgit pull
Skapa branchgitgit checkout -b feature
Skapa PRghgh pr create
Granska PRghgh pr review 123
Skapa issueghgh issue create
Se CI/CD statusghgh pr checks
Klona repoBådagit clone eller gh repo clone

Tumregel: Använd git för versionshantering, använd gh för GitHub-plattformsfunktioner.

Best Practices

  1. Kombinera git och gh: Använd båda verktygen tillsammans i ditt arbetsflöde
  2. Aliases: Skapa aliases för kommandon du använder ofta
  3. Scripting: Automatisera repetitiva GitHub-uppgifter
  4. PR-granskning: Granska kod direkt från terminalen innan merge
  5. CI/CD-övervakning: Använd gh run watch för att följa builds
  6. 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.


Upp

Upp


Licens: Apache 2.0 | © 2023 Marcus Medina, Campus Mölndal. Alla rättigheter förbehållna.
Du får använda och modifiera detta verk enligt villkoren i Apache License, Version 2.0. Du får inte använda detta verk för kommersiella ändamål utan tillstånd från upphovsmannen.