Przejdź do treści
> 💻 🧠 Kod 1001 > 📚 Materiały Edukacyjne > Git > GitHub > Co to jest GitHub CLI?

Co to jest GitHub CLI?

GitHub CLI (w skrócie gh) to narzędzie wiersza poleceń, które pozwala pracować z GitHubem bezpośrednio z terminala. Dzięki niemu możesz zarządzać repozytoriami, problemami (issues), żądaniami ściągnięcia (pull requests), wydaniami (releases) i innymi encjami, bez wchodzenia do interfejsu webowego GitHub.

CLI jest wygodne dla programistów, inżynierów DevOps i wszystkich, którzy automatyzują pracę z GitHubem lub preferują terminal zamiast przeglądarki.


Instalacja

GitHub CLI jest obsługiwany na Windows, macOS i Linux.

  • Linux (Ubuntu/Debian):
sudo apt install gh
  • macOS (przez Homebrew):
brew install gh
  • Windows (przez Winget):
winget install --id GitHub.cli

Po instalacji sprawdź wersję:

gh --version

Autoryzacja

Aby uzyskać dostęp do prywatnych repozytoriów i akcji, musisz się autoryzować:

gh auth login

CLI zaproponuje:

  • wybór GitHub.com lub GitHub Enterprise
  • metodę autoryzacji (przeglądarka, token, SSH)
  • zapisanie danych do kolejnych uruchomień

Status można sprawdzić poleceniem:

gh auth status

Główne funkcje

Praca z repozytoriami

Tworzenie nowego repozytorium:

gh repo create my-project

Klonowanie:

gh repo clone owner/repo

Wyświetlanie informacji:

gh repo view owner/repo

Issues

Tworzenie issue:

gh issue create --title "Błąd: awaria przy uruchomieniu" --body "Kroki do odtworzenia..."

Lista issues:

gh issue list

Wyświetlanie konkretnego issue:

gh issue view 42

Pull Requests

Tworzenie pull request:

gh pr create --base main --head feature-branch --title "Nowa funkcja" --body "Dodano nową funkcjonalność"

Wyświetlanie:

gh pr list
gh pr view 123

Łączenie (merge):

gh pr merge 123 --squash --delete-branch

Actions (CI/CD)

Uruchamianie workflow:

gh workflow run build.yml

Wyświetlanie statusu:

gh run list

Przydatne polecenia

PoleceniePrzeznaczenie
gh helplista wszystkich poleceń
gh alias set co "pr checkout"tworzenie aliasu dla szybkiego polecenia
gh gist create file.txtprzesyłanie pliku jako gist
gh release create v1.0.0tworzenie wydania

Zalety GitHub CLI

  • Oszczędność czasu: praca z GitHubem bez przeglądarki.
  • Skryptowanie: wygodne do automatyzacji w bash/PowerShell.
  • Integracja z CI/CD.
  • Jedno narzędzie do poleceń i API GitHub.

Świetnie 🚀 W takim razie stwórzmy listę kontrolną „TOP-10 poleceń GitHub CLI do codziennego użytku”. Można jej używać jako ściągawki.


✅ TOP-10 poleceń GitHub CLI do codziennego użytku

1. Autoryzacja

gh auth login

🔑 Autoryzacja w GitHub przez przeglądarkę lub token. Przydatne przy pierwszej konfiguracji lub zmianie konta.


2. Sprawdzenie statusu autoryzacji

gh auth status

📌 Sprawdza, czy CLI jest połączone z GitHubem i w jaki sposób.


3. Klonowanie repozytorium

gh repo clone owner/repo

📥 Szybkie klonowanie repozytorium bez wyszukiwania linku w interfejsie webowym.


4. Tworzenie nowego repozytorium

gh repo create my-project

🆕 Tworzenie repozytorium bezpośrednio z terminala (lokalnie + na GitHubie).


5. Wyświetlanie informacji o repozytorium

gh repo view --web

📖 Pokazuje opis i ustawienia repozytorium. Opcja --web natychmiast otwiera stronę w przeglądarce.


6. Lista issues

gh issue list

📋 Wygodne do przeglądania zadań i błędów bezpośrednio w terminalu.


7. Tworzenie issue

gh issue create --title "Błąd: logowanie nie powiodło się" --body "Kroki do odtworzenia..."

🐞 Tworzy nowe zadanie lub raport o błędzie.


8. Tworzenie Pull Request

gh pr create --base main --head feature-branch --title "Nowa funkcja" --body "Opis..."

🔀 Główne narzędzie pracy zespołowej: otwieranie Pull Requesta z własnej gałęzi.


9. Wyświetlanie i sprawdzanie PR

gh pr view 123

👀 Wyświetlanie Pull Requesta z komentarzami i statusami sprawdzeń. Można dodać --web, aby otworzyć w przeglądarce.


10. Łączenie PR z usunięciem gałęzi

gh pr merge 123 --squash --delete-branch

✅ Łączenie Pull Requesta + usuwanie gałęzi w jednym kroku.


📌 GitHub CLI — Ściągawka

🔑 Autoryzacja i ustawienia

PoleceniePrzeznaczeniePrzykład
gh auth loginAutoryzacja (przeglądarka, token, SSH)gh auth login
gh auth statusSprawdzenie bieżącego połączeniagh auth status
gh alias set co "pr checkout"Tworzenie aliasu dla poleceniagh alias set co "pr checkout"
gh config getPobieranie ustawień CLIgh config get editor

📂 Repozytoria

PoleceniePrzeznaczeniePrzykład
gh repo createTworzenie repozytoriumgh repo create my-project
gh repo cloneKlonowanie repozytoriumgh repo clone hypo69/hypotez
gh repo viewInformacje o repozytorium (lub otwarcie w web)gh repo view --web
gh repo forkTworzenie forka repozytoriumgh repo fork owner/repo

📝 Issues

PoleceniePrzeznaczeniePrzykład
gh issue listLista zadańgh issue list
gh issue createTworzenie issuegh issue create --title "Bug" --body "Steps..."
gh issue viewWyświetlanie issuegh issue view 42
gh issue closeZamykanie issuegh issue close 42

🔀 Pull Requests

PoleceniePrzeznaczeniePrzykład
gh pr listLista PRgh pr list
gh pr createTworzenie PRgh pr create --base main --head feature-x
gh pr viewWyświetlanie PRgh pr view 123 --web
gh pr checkoutPrzełączanie na gałąź PRgh pr checkout 123
gh pr mergeŁączenie PRgh pr merge 123 --squash --delete-branch

📦 Releases

PoleceniePrzeznaczeniePrzykład
gh release listLista wydańgh release list
gh release createTworzenie wydaniagh release create v1.0.0 --notes "First release"
gh release uploadDodawanie pliku do wydaniagh release upload v1.0.0 build.zip
gh release viewWyświetlanie wydaniagh release view v1.0.0

📜 Gisty

PoleceniePrzeznaczeniePrzykład
gh gist createTworzenie gistagh gist create file.txt
gh gist listLista gistówgh gist list
gh gist viewWyświetlanie gistagh gist view abc123
gh gist editEdycja gistagh gist edit abc123

⚙️ Workflows (GitHub Actions)

PoleceniePrzeznaczeniePrzykład
gh workflow listLista workflowgh workflow list
gh workflow viewWyświetlanie workflowgh workflow view build.yml
gh workflow runUruchamianie workflowgh workflow run build.yml
gh run listLista uruchomieńgh run list
gh run watchObserwowanie uruchomieniagh run watch 123456789

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *