GitHub

gh コマンド(GitHub CLI)

ターミナルから GitHub を操作できる公式 CLI ツールの使い方

gh コマンド(GitHub CLI) eyecatch

gh CLI とは

gh は GitHub 公式のコマンドラインツールです。

PR(プルリク)の作成・レビュー、Issue の管理、リポジトリの操作など、GitHub の主要機能をターミナルから実行できます。

ブラウザを開かずに作業を完結させられるため、開発の効率が大幅に向上します。

bash
# インストール(macOS)
brew install gh

# インストール(Windows)
winget install GitHub.cli

# 認証(初回のみ)
gh auth login

よく使うコマンド: PR 操作

  • gh pr create

    新しい PR を作成します。タイトル・本文・レビュアー・ラベルをオプションで指定できます。

  • gh pr list

    リポジトリの PR を一覧表示します。--state open--assignee @me で絞り込み可能です。

  • gh pr view

    PR の詳細を表示します。--web をつけるとブラウザで開けます。

  • gh pr checkout

    他の人の PR をローカルブランチに取り込んでレビューできます。

  • gh pr merge

    PR をマージします。--squash / --merge / --rebase でマージ方法を指定します。

bash
# PR を作成
gh pr create --title "機能追加" --body "説明"

# PR 一覧を表示
gh pr list
gh pr list --state open --assignee @me

# PR の詳細を確認
gh pr view 123

# PR をブラウザで開く
gh pr view 123 --web

# 他の人の PR をローカルにチェックアウト
gh pr checkout 123

# PR をマージ
gh pr merge 123 --squash

よく使うコマンド: Issue 操作

  • gh issue create

    新しい Issue を作成します。リポジトリに Issue テンプレートがあれば自動で選択肢が表示されます。

  • gh issue list

    Issue を一覧表示します。--label--assignee などで絞り込み可能です。

  • gh issue view

    Issue の詳細を表示します。コメント履歴もそのまま確認できます。

  • gh issue close / gh issue comment

    クローズやコメント追加もターミナルから直接実行できます。

bash
# Issue を作成
gh issue create --title "バグ報告" --label bug

# Issue 一覧
gh issue list
gh issue list --label "high priority"

# Issue の詳細
gh issue view 42

# Issue をクローズ
gh issue close 42 --comment "修正完了"

よく使うコマンド: リポジトリ操作

  • gh repo create

    新しいリポジトリを作成します。--public / --private--clone を組み合わせると作成と同時にローカルへ clone できます。

  • gh repo clone

    owner/repo 形式で指定するだけで clone できます。URL を覚える必要がありません。

  • gh repo fork

    リポジトリをフォークします。--clone でそのままローカルに clone 可能です。

  • gh repo view / gh browse

    gh repo view で README を表示、gh browse で現在のリポジトリをブラウザで開けます。

bash
# リポジトリを作成
gh repo create my-project --public --clone

# リポジトリをクローン
gh repo clone owner/repo

# リポジトリをフォーク
gh repo fork owner/repo --clone

# ブラウザで開く
gh browse
gh browse --settings

便利な応用テクニック

  • gh api

    GitHub の REST / GraphQL API を直接呼び出せます。--jq で結果の整形も可能です。

  • gh alias set

    よく使うコマンドにカスタムエイリアスを定義できます。gh prs のような短縮コマンドを自作できます。

  • gh extension

    コミュニティ製の拡張機能をインストールして gh を拡張できます。

  • JSON 出力(--json

    多くのコマンドで --json をサポートしており、シェルスクリプトとの連携が容易です。

bash
# API を直接呼び出し
gh api repos/owner/repo/pulls --jq ".[].title"

# エイリアスを定義
gh alias set prs "pr list --assignee @me"
gh prs  # 自分の PR 一覧

# CI の状態を確認
gh run list
gh run view 12345 --log

関連コマンド