
GitHubでのチーム開発や個人開発において、Webブラウザとターミナルを何度も行き来する作業に煩わしさを感じたことはないでしょうか。
リポジトリの作成や確認、プルリクエスト(PR)の発行、コードレビュー、マージ、さらにはIssueの起票まで、ブラウザを開くことなくターミナル上で一貫して操作できる公式ツールが「GitHub CLI(ghコマンド)」です。
日常のGitコマンドと組み合わせて素早く操作できるだけでなく、シェルスクリプトでの自動化や、CursorやClaude CodeなどのAIコーディングツールと組み合わせてGitHub上のIssueやPull Request、Actionsの情報をターミナルから扱う場面でも役立ちます。
この記事では、OS別のインストール手順や初期認証をはじめ、実務で毎日使えるプルリクエストやIssue、リポジトリ操作の逆引きコマンド一覧まで分かりやすく解説します。
この記事で行うこと
前提条件・対象読者
【早見表】実務でよく使うghコマンド一覧(チートシート)
日常的な開発で頻繁に使用する代表的なコマンドの目的別早見表です。すでにインストール済みの方は、この一覧表から目的のコマンドを逆引きしてください。
認証・初期設定
| 目的 | 実行コマンド | 主な用途・備考 |
|---|---|---|
| 初回認証・ログイン | gh auth login | ブラウザ連携やトークンでGitHubアカウントを紐付け |
| 認証状態の確認 | gh auth status | 現在のアカウントと接続プロトコルを表示 |
| Git認証ヘルパーの設定 | gh auth setup-git | Gitの認証にghの認証情報を利用するよう設定 |
| アカウント切り替え | gh auth switch | 複数アカウント利用時に対象アカウントを切り替え |
リポジトリ操作
| 目的 | 実行コマンド | 主な用途・備考 |
|---|---|---|
| 高速クローン | gh repo clone <owner>/<repo> | URL不要でアカウント名とリポジトリ名から直接クローン |
| リモート作成 | gh repo create <名> --source=. --push | ローカルフォルダをリモートに直接作成して初回push |
| フォーク | gh repo fork <owner>/<repo> --clone | リポジトリのフォークと手元へのクローンを同時に実行 |
| Web画面を開く | gh browse | カレントリポジトリのGitHub Webページを開く |
プルリクエスト(PR)操作
| 目的 | 実行コマンド | 主な用途・備考 |
|---|---|---|
| PRの新規作成 | gh pr create | 対話形式または引数指定でPRを発行 |
| PRの作成(Web画面) | gh pr create --web | ブラウザのPR作成フォームを直接起動 |
| PRの一覧表示 | gh pr list | オープン中のPR一覧を確認 |
| PRの詳細確認 | gh pr view <番号> | ターミナル上でPRの説明文や概要を表示 |
| PRのチェックアウト | gh pr checkout <番号> | レビュー対象のPRブランチを手元に切り替え |
| PRの差分確認 | gh pr diff <番号> | ターミナル上で変更コードの差分を表示 |
| CIチェック状態の確認 | gh pr checks <番号> | PRに紐づくCI/CDテストの成否を確認 |
| PRのマージ | gh pr merge <番号> | 対話形式でマージ方式を選択して実行 |
| PRの自動マージ | gh pr merge <番号> --auto --squash | チェック通過後にSquashマージを自動実行 |
Issue管理
| 目的 | 実行コマンド | 主な用途・備考 |
|---|---|---|
| Issueの新規作成 | gh issue create | バグ報告や要望をターミナルから起票 |
| Issueの一覧表示 | gh issue list | オープンなIssueの一覧を確認 |
| Issueの詳細確認 | gh issue view <番号> | Issueの内容やコメントをターミナル上で確認 |
GitHub Actions監視
| 目的 | 実行コマンド | 主な用途・備考 |
|---|---|---|
| 実行一覧 | gh run list | ワークフロー実行履歴とステータスの一覧 |
| 実行詳細の確認 | gh run view <run-id> | 指定したワークフロー実行の詳細情報を表示 |
| ワークフロー監視 | gh run watch <run-id> | 実行中のワークフローの終了をリアルタイム監視 |
| 失敗ログの確認 | gh run view <run-id> --log-failed | 失敗したステップのログのみを抽出して表示 |
| 失敗ジョブの再実行 | gh run rerun <run-id> --failed | 失敗したジョブのみをピンポイントで再実行 |
API・便利機能
| 目的 | 実行コマンド | 主な用途・備考 |
|---|---|---|
| Web画面を一発表示 | gh browse <番号> | PRやIssue番号を指定して該当Webページを開く |
| コミット画面を開く | gh browse <commit-sha> | コミットハッシュを指定してWebページを開く |
| API呼び出し | gh api user | ghの認証情報を使ってGitHub REST/GraphQL APIを実行 |
1. GitHub CLI(gh)のインストール手順(OS別)
GitHub CLIは、コマンドライン上では通常 gh コマンドとして利用します。
この記事では、Windows・macOS・Linux(Ubuntu / Debian系)それぞれの導入方法を紹介します。GitHub CLI本体をインストールした後は、gh auth login でGitHubアカウントと連携して利用を開始します。
なお、GitHub CLIの拡張機能(エクステンション)を導入する場合は、本体のインストールとは別に gh extension install コマンドを使用します。
Windowsの場合(winget推奨)
Windows 10 / 11では、標準のパッケージマネージャーであるwingetを利用してインストールするのが最も手軽です。PowerShellまたはコマンドプロンプトを開き、以下のコマンドを実行します。
winget install --id GitHub.cli
環境や設定によっては、インストール時に管理者権限の確認ダイアログが表示される場合があります。画面の案内に従って許可してください。
※Scoopを利用している場合は scoop install gh、Chocolateyを利用している場合は choco install gh でも導入可能です。
macOSの場合(Homebrew)
macOSではHomebrewを使用してインストールします。ターミナルを開き、以下のコマンドを実行してください。
brew install gh
Linuxの場合(Ubuntu / Debian系)
UbuntuやDebianなどのAPT系Linuxでは、GitHub CLIの公式パッケージリポジトリを登録してインストールする方法があります。
以下では、GitHubが案内しているGPGキーリングを利用したリポジトリ登録方式を紹介します。Ubuntu 22.04 / 24.04などの環境で利用する場合は、使用しているディストリビューションやバージョンに対応していることを確認してください。
# 必要なツールの確認とkeyringsディレクトリの作成
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
インストール完了後、以下のコマンドでバージョン情報が表示されれば正常にセットアップできています。
gh --version
インストール後に「command not found: gh」と表示される場合の確認項目
インストールコマンドが完了した直後にもかかわらず、ターミナルで gh を入力した際に以下のようなエラーが表示される場合があります。
zsh: command not found: gh
またはBash環境で以下のように表示されます。
bash: gh: command not found
このエラーが発生した場合は、慌てずに以下のポイントを確認してください。
2. GitHubへの初回ログイン(認証)とシェル補完
GitHub CLIを利用するには、初回のみGitHubアカウントとの紐付け(認証)を行う必要があります。
GitHubアカウントへログイン(gh auth login)
以下のコマンドを実行すると、対話型の設定プロンプトが始まります。
gh auth login
プロンプトでは以下のように選択して進めます。
- 「What account do you want to log in to?」 →
GitHub.comを選択します。 - 「What is your preferred protocol for Git operations?」 →
HTTPSまたはSSHを選択します。 ※ここで選択するプロトコルは、GitHub CLIへのログイン方式そのものではなく、ghがリポジトリのクローンやプッシュなどのGit操作で使用するリモートURLの方式です。SSHを選択した場合は、既存のSSH秘密鍵の検出や新規作成・登録の案内が表示される場合があります。 - 「Authenticate Git with your GitHub credentials?」 →
Yesを選択します。Yesを選ぶと、GitHub CLIの認証情報をGitの認証ヘルパーとして利用する設定になります。HTTPSでGit操作を行う場合などに役立ちます。 - 「How would you like to authenticate GitHub CLI?」 → 通常は
Login with a web browser(ブラウザでログイン)を選択します。
なお、ここで選択するGit操作のプロトコル(HTTPS / SSH)と、GitHub CLI自体の認証方法(ブラウザ認証など)は別の設定です。表示されたワンタイムコードを使ってブラウザ側で認証・承認を進めると、ターミナル側のログインが完了します。
現在のログイン状態を確認したい場合は、以下のコマンドを実行します。
gh auth status
コマンド補完の設定(Tabキーでの自動補完)
コマンド名やブランチ名、オプションをTabキーで補完できるように設定しておくと、日々の入力効率が格段に向上します。
3. 【実践フロー】GitとGitHub CLIを組み合わせた開発の流れ
日常業務で「Git」と「GitHub CLI(gh)」をどのように組み合わせて使うのか、リポジトリの準備からプルリクエストの作成・マージまでの最小実践フローを紹介します。
Gitはローカルでのバージョン管理(コミットやブランチ切り替え)を担当し、ghはGitHubとの連携操作(リポジトリ作成、PR発行、CI確認、マージ)を担当します。
ステップ1:リポジトリの準備
GitHub上の既存リポジトリを手元にクローンします。ghコマンドならURLをコピーすることなく、「ユーザー名/リポジトリ名」だけで素早くクローンできます。
# リポジトリをクローンして作業フォルダへ移動
gh repo clone owner/sample-repo
cd sample-repo
ステップ2:作業ブランチの作成と変更のコミット・push
日々のファイル変更やコミットは通常のGitコマンドで行います。
# 作業用の機能ブランチを作成して切り替え
git switch -c feature/login-form
# ファイル編集後にステージングしてコミット
git add .
git commit -m "Add login form UI"
# リモートへブランチをpush
git push -u origin feature/login-form
ステップ3:プルリクエストの作成(gh pr create)
pushが完了したら、ブラウザを開くことなくターミナルからプルリクエストを作成します。
# 直前のコミットメッセージを元にタイトルと本文を自動入力して作成
gh pr create --fill
手動でタイトルや本文を対話形式で入力したい場合は、オプションを付けずに gh pr create を実行します。
ステップ4:CI確認とマージ(gh pr merge)
プルリクエストを作成した後は、CIの通過を確認してマージを行います。
# CIテストのステータスを確認
gh pr checks
# 自動マージを予約し、条件を満たしたらSquashマージ
# マージ後はローカル・リモートのブランチを削除
gh pr merge --auto --squash --delete-branch
--auto は、必要なレビューやステータスチェックなどの条件が満たされた後に自動マージを予約するオプションです。リポジトリ側で自動マージが許可されていない場合や、ブランチ保護ルールなどの条件を満たしていない場合はマージされません。また、--delete-branch を指定すると、マージ後にローカルおよびリモートのブランチが削除されます。
このように、日常的なGit操作とGitHub上のPR操作を、ターミナル中心のワークフローで効率的に進められます。
4. 【逆引き】プルリクエスト操作(gh pr)
開発現場で最も頻繁に利用されるプルリクエスト(PR)関連の逆引きコマンドです。
① プルリクエストを新規作成する(gh pr create)
作業ブランチにコミットをpushした後、以下のコマンドを実行すると対話形式でPRを作成できます。
gh pr create
タイトル、本文、作成先ブランチ(ベースブランチ)の入力を求められます。
オプションを指定して一括で作成することも可能です。
# タイトルと本文を指定して作成
gh pr create --title "ヘッダーのナビゲーション改修" --body "ユーザーメニューのリンク崩れを修正しました。"
# マージ先ブランチ(mainやdevelop)を明示して作成
gh pr create -B main -t "新機能追加" -b "機能の詳細説明"
# 下書き(Draft PR)として作成
gh pr create --draft -t "WIP: 決済機能の実装" -b "レビュー準備中"
# ブラウザの入力画面を直接開いて作成
gh pr create --web
② オープン中のプルリクエスト一覧を確認する(gh pr list)
リポジトリ内のオープンなプルリクエストを一覧表示します。
gh pr list
条件を指定して絞り込むこともできます。
# 自分にレビューが依頼されているPRの一覧
gh pr list --search "review-requested:@me"
# 特定のラベルが付いたPRの一覧
gh pr list --label "bug"
③ プルリクエストの詳細や変更差分を確認する(gh pr view / gh pr diff)
PRの説明文やコミット一覧をターミナル上で素早く確認できます。
# PR番号を指定して概要と説明文を表示
gh pr view 42
# PRの変更コード差分を表示
gh pr diff 42
④ 他人のPRをローカルにチェックアウトする(gh pr checkout)
コードレビューを行う際、相手のPRブランチをローカルで動かして動作確認したい場面があります。従来はリモートブランチをフェッチして手動で切り替える必要がありましたが、ghコマンドならPR番号を指定するだけでチェックアウトできます。
gh pr checkout 42
PR番号を指定すると、そのPRの変更をローカルで確認できる状態にします。必要に応じてローカルブランチが作成・切り替えされるため、レビューや動作確認を始めやすくなります。チーム開発でコードレビューや動作確認を行う際に便利なコマンドです。
※外部コントリビューターのPRをチェックアウトして動作確認する場合は、コードの内容や実行するスクリプトを事前に確認してください。信頼できないコードを安易に実行するのは避けましょう。
⑤ CIテストやステータスチェックを確認する(gh pr checks)
プルリクエストに紐づくGitHub ActionsなどのCIテストが成功しているかどうかをターミナルで一覧確認できます。
# PR番号を指定してチェック状況を確認
gh pr checks 42
実行中・成功・失敗などのチェック状態を一覧で確認できます。
⑥ プルリクエストをマージする(gh pr merge)
レビューが完了したPRをターミナルからマージします。
gh pr merge 42
対話プロンプトでマージ方法(通常のマージコミット、Squashマージ、Rebaseマージ)を選択できます。
コマンドラインオプションで自動実行することも可能です。
# Squashマージを実行し、マージ後に不要となったローカルおよびリモートブランチを自動削除
gh pr merge 42 --squash --delete-branch
自動マージの予約(–auto)
GitHub ActionsなどのCIテストが実行中である場合、マージ条件が満たされた時点で自動的にマージを完了させる --auto オプションが便利です。
# 必須チェック通過後に自動でSquashマージし、ローカル・リモートブランチを削除
gh pr merge 42 --auto --squash --delete-branch
※ --auto による自動マージを利用するには、リポジトリの設定で「Allow auto-merge」が有効になっている必要があります。また、必須レビュー数や保護ブランチのルールセットが満たされていない場合は、それらの条件がクリアされるまでマージは待機状態となります。
なお、プルリクエストで競合(コンフリクト)が発生してマージできない場合の詳しい解決手順については、以下の記事を参考にしてください。
5. 【逆引き】Issue管理(gh issue)
バグ報告や機能要望などのIssueも、ターミナルから手軽に起票・確認できます。
① Issueを新規作成する(gh issue create)
# 対話形式で作成
gh issue create
# コマンドラインからタイトルと本文を指定して一発作成
gh issue create --title "ログインボタンが反応しない不具合" --body "Safariブラウザ環境でクリックイベントが発火しません。"
② Issueの一覧を表示する(gh issue list)
# オープンなIssue一覧を表示
gh issue list
# 自分が担当者(Assignee)になっているIssueのみを表示
gh issue list --assignee @me
③ Issueの詳細・コメントを確認する(gh issue view)
gh issue view 15
6. 【逆引き】リポジトリ操作(gh repo)
① URL不要でリポジトリを高速クローンする(gh repo clone)
通常の git clone では長いURL(https://github.com/...)をコピーする必要がありますが、GitHub CLIなら「アカウント名/リポジトリ名」を指定するだけでクローンできます。
gh repo clone cli/cli
② 新規リモートリポジトリを作成する(gh repo create)
ローカルの新規プロジェクトフォルダから、直接GitHub上にリモートリポジトリを作成して紐付けることができます。
# カレントディレクトリを元に、非公開(Private)リポジトリを作成してpushまで完了
gh repo create my-new-project --private --source=. --remote=origin --push
③ リポジトリをフォークする(gh repo fork)
オープンソースプロジェクトに貢献する際など、リポジトリのフォークとローカルへのクローンを1コマンドで同時に行えます。
gh repo fork cli/cli --clone
7. 【逆引き】GitHub Actionsの監視とログ確認(gh run)
現代の開発現場では、プルリクエストの作成後にGitHub Actionsによる自動テストやビルド(CI/CD)が実行されるのが一般的です。gh run コマンド群を使えば、ブラウザを開くことなくターミナル完結で実行状況の監視や失敗ログの確認が行えます。
① 直近のワークフロー実行状況を確認する(gh run list)
リポジトリ内で実行されたGitHub Actionsの履歴と現在のステータスを一覧表示します。
gh run list
ステータス(completed / in_progress / queued)や実行結果(success / failure)、対象ブランチ、トリガーとなったイベントが一目で把握できます。
特定のワークフロー名で絞り込むことも可能です。
# テストワークフローのみを絞り込んで5件表示
gh run list --workflow=test.yml --limit 5
② 実行中のCIをリアルタイム監視する(gh run watch)
pushやPR作成直後に実行中のワークフローを、ターミナル上でリアルタイムに進行状況監視できます。
# 実行IDを指定してワークフロー実行を監視
gh run watch 123456789
実行IDを省略して gh run watch のみ実行した場合は、対話形式で監視対象のワークフロー実行を選択できます。
# 重要なステップや失敗したステップを中心にコンパクトに表示
gh run watch 123456789 --compact
# 失敗時に終了ステータス(非ゼロ)を返す(スクリプト向け)
gh run watch 123456789 --exit-status
各ステップの進捗がターミナル上で自動更新され、完了するとプロンプトに戻ります。ブラウザのタブをリロードし続ける必要がなくなります。
③ 失敗したテストのログだけを直接表示する(gh run view –log-failed)
CIテストやビルドが失敗した場合、Web画面で数千行もあるログからエラー箇所を探すのは骨が折れます。--log-failed を使えば、失敗したステップのエラーログのみを抽出してターミナルに出力してくれます。
# 実行IDを指定して、失敗したステップのログのみを表示
gh run view 123456789 --log-failed
実行IDを省略した場合は、対話プロンプトで対象の実行を選択できます。
ターミナルに出力されたエラー内容をそのままコピーして原因調査を行ったり、AIツールに連携して修正案を作成する際にもスムーズです。
④ 失敗したジョブのみを再実行する(gh run rerun –failed)
ネットワークの一時的なタイムアウトなどにより失敗したジョブだけを再実行したい場合に役立ちます。
# 特定の実行IDを指定して、失敗したジョブのみを再実行
gh run rerun 123456789 --failed
8. 知っておくと差がつく!GitHub CLIの便利機能
① 作業中のリポジトリWeb画面を一発で開く(gh browse)
ターミナルで作業中、「このリポジトリのGitHub画面をブラウザで見たい」という場面がよくあります。gh browse を実行するだけで、既定ブラウザで該当ページが開きます。
# 現在のリポジトリのトップページを開く
gh browse
# Issue番号またはPull Request番号を指定してWebページを開く
gh browse 42
# 特定のファイルをブラウザで開く
gh browse README.md
# コミットSHAを指定してコミット詳細画面を開く
gh browse 77507cd94ccafcf568f8560cfecde965fcfa63
# リポジトリのActions画面を直接開く
gh browse --actions
URLをブラウザに手入力したりブックマークを探す手間が不要になります。
② 認証情報を使ってGitHub APIを呼び出す(gh api)
GitHub REST APIやGraphQL APIを実行したい場合、パーソナルアクセストークン(PAT)の発行や Authorization ヘッダーの手動設定をすることなく、GitHub CLIの認証情報を再利用して直接APIを呼び出すことができます。
# 認証済みユーザーの情報をJSON形式で取得
gh api user
# jq組み込みフラグを使ってユーザー名(login)のみを抽出
gh api user --jq '.login'
# 特定リポジトリのリリース一覧を取得
gh api repos/cli/cli/releases --jq '.[0].tag_name'
シェルスクリプトでの自動化やGitHubデータの簡易取得において、認証管理の手間を大幅に省くことができます。
まとめ
GitHub CLI(gh)を導入することで、ブラウザとターミナルの往復をなくし、日々のGit開発フローを効率化できます。
まずはよく使うPR作成(gh pr create)やチェックアウト(gh pr checkout)、早見表のコマンドから少しずつ取り入れて、快適なCLI開発環境を構築してみてください。
次に読むおすすめ記事
Gitの全体像や基本コマンド、ブランチ運用、トラブル解決手順を体系的に学びたい方は、以下の完全ガイドもあわせて参考にしてください。

また、プルリクエスト運用で頻出するコンフリクトの対処法については、以下の記事もおすすめです。

