【Git・GitHub操作ガイド】GitHub CLI ( gh ) 入門 : ターミナルから Github を操作する

本記事の目的

本記事は、バージョン管理システムGitと、コラボレーションプラットフォームGitHubを、体系的に学び、実践的に使いこなすためのガイドです。
あなたがGitユーザーとして、チームの生産性とコードの品質を牽引できる、信頼される開発者へと成長することができる情報を提供します。

この章では、「GitHub CLI」であるghコマンドについて、概要、導入方法、そして基本的な使い方を体系的に紹介します。

ghを導入することで、あなたのターミナルから、Githubを直接操作してプロジェクト管理とコラボレーションができる環境へと拡張することができます。

目次

対象読者

本書は、以下のような幅広い読者を対象としています。

  • GitやGitHubをこれから学びたい、あるいは学び始めたばかりの学生や初学者の方
  • 自己流でGitを使ってきたが、チーム開発の経験は浅いエンジニアの方
  • GitHubの便利な機能を使いこなし、開発プロセスを改善したい中級者の方
  • エンジニアと協業する非エンジニア職(デザイナー、プロジェクトマネージャー、テクニカルライター等)の方


1. 概要:GitHub CLI (gh) とは何か?

GitHub CLI (以下、gh)は、GitHub公式が提供するコマンドラインツールで、ターミナルからGitHubの機能(Issue, Pull Request, Actionsなど)を直接、かつシームレスに操作することができるすごく便利なツールです。

これまでWebブラウザで行っていた以下のような作業を、すべてターミナル上で完結させることができ、環境を切り替えることなく、開発作業をスムーズに実施できます!
自分は、コーディング作業とプロジェクト管理の間のコンテキストスイッチ(思考の切り替え)が最小限になるので、開発フローがすごく快適になりました!

ghで、実施できる主な操作は、以下の通りです。これだけでも、かなりの操作ができることがわかりますね。

  • リポジトリの作成やクローン
  • IssueやPull Requestの作成、一覧表示、レビュー
  • GitHub Actionsのワークフロー実行状況の確認や手動実行
  • リリースの作成

gitghの違い
これは初心者が混乱しやすいポイントなので、解説しておきます。

  • git: あなたのPC(ローカル)にあるリポジトリのバージョン履歴を管理するためのツールです。(例: git commit, git merge
  • gh: GitHubというWebサービス(リモート)と対話するためのツールです。(例: gh pr create, gh issue list

gitでローカルの個人の作業を行い、ghでチームと共有する、と考えると分かりやすいです。


2. インストール手順

ghは、主要なOSに簡単にインストールできます。

macOS

Homebrewを使うのが最も簡単です。
Homebrew は、macOS、および Linux へのソフトウェアのインストールを簡素化する、無料のオープン ソース ソフトウェア パッケージ管理システムです。

GitHub CLI フォーミュラは、 Homebrew の協力を得て GitHub CLI メンテナーによってサポートされており、homebrew/homebrew-core`でアップデートされています。

# インストール
brew install gh

# アップグレード
brew upgrade gh

Homebrewのインストールについては、以下の記事で詳細に説明しています。

Windows

Wingetを使うのが便利です。

WinGetは、Windows 10、Windows 11、およびWindows Server 2025コンピューター上でアプリケーションの検出、インストール、アップグレード、削除、および構成を可能にするコマンドラインツールです。このツールは、Windows パッケージマネージャーサービスへのクライアントインターフェイスです。

GitHub CLI パッケージは、 microsoft /winget-pkgsによる更新によって Microsoft によってサポートされています。

# インストール
winget install --id GitHub.cli

# アップグレード
winget upgrade --id GitHub.cli

Linux (Debian, Ubuntu, Raspberry Pi)

# (初回のみ) GPGキーの追加とリポジトリ設定とインストール実行
(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 \
    && sudo mkdir -p -m 755 /etc/apt/sources.list.d \
    && 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

# アップグレード
sudo apt update
sudo apt install gh

インストールが完了したら、gh --versionを実行してバージョン情報が表示されれば成功です。

コマンドの実行例:macOSへのインストール

hogehoge@mac hello-world % brew install gh  
==> **Fetching downloads for:** **gh**
==> **Downloading https://ghcr.io/v2/homebrew/core/gh/manifests/2.78.0**
############################################################################################################################ 100.0%
==> **Fetching** **gh**
==> **Downloading https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:100a42a5352dfb76c01872ead02b29c38608ff05e4101265172d2fae10df74bb**
############################################################################################################################ 100.0%
==> **Pouring gh--2.78.0.arm64_sequoia.bottle.tar.gz**
🍺  /opt/homebrew/Cellar/gh/2.78.0: 214 files, 50.6MB
==> **Running `brew cleanup gh`...**
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> **No outdated dependents to upgrade!**
==> **Caveats**
zsh completions have been installed to:
  /opt/homebrew/share/zsh/site-functions
hogehoge@mac hello-world % gh --version
gh version 2.78.0 (2025-08-21)
https://github.com/cli/cli/releases/tag/v2.78.0
hogehoge@mac hello-world %


3. 認証手順

インストール後、最初にghコマンドを使う際に、あなたのGitHubアカウントとの連携(認証)が必要です。

  1. ターミナルで以下のコマンドを実行します。
    bash gh auth login
  2. 対話形式でいくつかの質問をされます。基本的には推奨の選択肢(Enterキーを押すだけ)で問題ありません。
    • Where do you use GitHub?GitHub.com
    • What is your preferred protocol for Git operations on this host?SSH (HTTPSに慣れている方はそちらでも可)
    • Upload your SSH public key to your GitHub account?/Users/hogehoge/.ssh/id_ed25519.pub
    • Title for your SSH key: → 任意のタイトル(エンターでデフォルト設定してくれる)
    • How would you like to authenticate GitHub CLI?Login with a web browser (ブラウザでログイン)
  3. Login with a web browserを選択すると、以下のようなメッセージが表示されます。 ! First copy your one-time code: XXXX-XXXX Press Enter to open https://github.com/login/device in your browser... 表示されたワンタイムコード(XXXX-XXXX)をコピーしてください。
  4. Enterキーを押すと、自動的にブラウザが開き、GitHubのデバイス認証ページが表示されます。「Continue」をクリックしてください。ワンタイムコードの入力画面が表示されるので、先ほどコピーしたワンタイムコードを入力(もしくは、貼り付け)ます。
  5. 次の画面で権限の承認(Authorize)を求められるので、承認してください。
  6. ブラウザに「Congratulations, you’re all set!」と表示されれば認証完了です。ターミナルに戻ると、ログインが成功した旨のメッセージが表示されています。

これで、あなたのPCのghコマンドが、あなたのアカウントとしてGitHubと安全に通信できるようになりました。

コマンドの実行例:gh認証(SSHキー)

hogehoge@mac hello-world % gh auth login
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? SSH
? Upload your SSH public key to your GitHub account? /Users/hogehoge/.ssh/id_ed25519.pub
? Title for your SSH key: GitHub CLI # デフォルトエンターのみ
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: YOUR-CODE
Press Enter to open https://github.com/login/device in your browser...
Logged in as hogehoge
hogehoge@mac hello-world %


4. 代表的なコマンド

ghには多くのコマンドがあります。
日常的によく使うものをいくつか紹介します。

コマンド説明と利用事例
gh repo clone <owner>/<repo>リポジトリをクローンします。git cloneと違い、フォークした場合にupstreamリモートを自動で設定してくれるなど、より高機能です。
gh repo view --web現在いるローカルリポジトリに対応するGitHubのページを、ブラウザで開きます。地味ですが非常に便利です。
gh pr listオープンなPull Requestを一覧表示します。チームの現在の作業状況を把握するのに役立ちます。
gh pr create現在のブランチからPull Requestを対話形式で作成します。タイトルや本文の入力を求められます。
gh pr checkout <number>指定した番号のPRをローカルにチェックアウトします。レビューのためにコードを動かして確認したい場合に必須のコマンドです。
gh pr merge <number>レビューが完了したPRをマージします。--squash--rebaseといったオプションも利用できます。
gh issue listオープンなIssueを一覧表示します。--assignee @meを付けると、自分に割り当てられたIssueだけを表示できます。
gh issue create新しいIssueを対話形式で作成します。バグ報告や機能要望をターミナルから直接起票できます。
gh run listGitHub Actionsのワークフローの実行履歴を一覧表示します。CI/CDの状況を確認するのに使います。
gh secret set <name>Actionsで使うシークレットをコマンドラインから設定できます。cat .env | gh secret set -f -のように、ファイルから一括で設定することも可能です。


5. 注意点

  • リポジトリ内で実行する:
    • gh prgh issueなど、多くのコマンドはGitで管理されたリポジトリのディレクトリ内で実行する必要があります。
    • ghは現在のリポジトリ情報(リモートURLなど)を元に、どのGitHubリポジトリに対して操作を行うかを判断するためです。
  • 迷ったら--help:
    • 各コマンドの詳しい使い方やオプションがわからない場合は、gh pr --helpのように--helpフラグを付けて実行すると、詳細なドキュメントが表示されます。
  • エイリアスを活用する:
    • gh alias setを使うと、よく使う長いコマンドに短い別名を付けることができます。自分好みにカスタマイズすることで、作業効率をさらに向上させることができます。


6. 参考資料

より詳細な情報や、全てのコマンドのリファレンスは、公式サイトを参照してください。


7. まとめ

以上が、GitHub CLIの導入手順です。ぜひ、あなたの開発環境にghを導入し、ターミナル中心の快適なGitHubライフを体験してみてください!

さあ、あなたのMacを快適な開発環境にしましょう!!

SNSでもご購読できます。

コメントを残す

*