GitHub CLI完全ガイド:コマンドラインでGitHub操作を効率化

Development
スポンサーリンク

GitHub CLI(ghコマンド)は、GitHubの操作をコマンドラインで完結できる公式ツールです。ブラウザを開かずに、リポジトリ作成からIssue管理、Pull Request作成まで、すべてターミナルで行えます。この記事では、実際の導入から活用法、トラブルシューティングまで詳しく解説します。

スポンサーリンク

GitHub CLIとは?

GitHub CLIは、Gitコマンドとは別の、GitHub専用のコマンドラインツールです。

Gitとの違い

機能GitGitHub CLI
ローカルリポジトリ管理
リモートとの同期
GitHub上のリポジトリ作成
Issue管理
Pull Request管理
Actions確認

つまり、Gitはローカル作業GitHub CLIはGitHub上の作業を担当します。

インストール手順

Windows

方法1: wingetコマンド(推奨)

winget install GitHub.cli

実行すると以下のような出力が表示されます:

見つかりました GitHub CLI [GitHub.cli] バージョン 2.85.0
ダウンロード中...
インストールが完了しました

方法2: 公式インストーラー

  1. https://cli.github.com/ にアクセス
  2. 「Download for Windows」をクリック
  3. .msiファイルをダウンロードして実行

インストール後の確認

重要: インストール後はコマンドプロンプトを再起動してください。

再起動後、以下のコマンドで確認:

gh --version

以下のように表示されればOKです:

gh version 2.85.0 (2024-XX-XX)

macOS

brew install gh

Linux

Ubuntuの場合:

sudo apt install gh

その他のディストリビューションは公式ドキュメントを参照してください。

認証設定

GitHub CLIを使うには、GitHubアカウントとの認証が必要です。

基本的な認証フロー

gh auth login

対話形式で以下を選択していきます:

1. アカウント選択

? What account do you want to log into?
> GitHub.com
  GitHub Enterprise Server

GitHub.com を選択します。

2. プロトコル選択

? What is your preferred protocol for Git operations?
> HTTPS
  SSH

HTTPS を選択します(一般的な使い方)。

3. 認証方法選択

? How would you like to authenticate GitHub CLI?
> Login with a web browser
  Paste an authentication token

Login with a web browser を選択します(推奨)。

4. ブラウザで認証

! First copy your one-time code: XXXX-XXXX
Press Enter to open github.com in your browser...
  1. 表示されたワンタイムコードをコピー
  2. Enterキーを押す
  3. ブラウザが開くので、GitHubにログイン
  4. コードを入力
  5. 「Authorize github」をクリック

重要ポイント:

  • ワンタイムコードには有効期限がある(通常15分)
  • 素早く入力すること
  • 手入力ではなくコピー&ペーストを推奨

認証完了の確認

gh auth status

以下のように表示されれば成功:

github.com
  ✓ Logged in to github.com as YOUR_USERNAME
  ✓ Git operations for github.com configured to use https protocol.
  ✓ Token: ghp_************************************

トラブルシューティング

エラー1: 'gh' は認識されていません

原因: インストール後にコマンドプロンプトを再起動していない

解決方法:

  1. コマンドプロンプトを閉じる
  2. 新しいコマンドプロンプトを開く
  3. 再度 gh --version を実行

それでも解決しない場合は、環境変数のPATHに以下を追加:

C:\Program Files\GitHub CLI

エラー2: Uh oh, we couldn't find anything

原因: ワンタイムコードの入力ミスまたは有効期限切れ

解決方法:

  1. gh auth login を再実行
  2. 新しいワンタイムコードが表示される
  3. すぐにコピーしてブラウザに入力
  4. 手入力ではなくコピー&ペーストを使用

エラー3: Personal Access Tokenを使いたい場合

ブラウザ認証がうまくいかない場合:

gh auth login

認証方法選択で Paste an authentication token を選択

トークン作成手順:

  1. https://github.com/settings/tokens にアクセス
  2. 「Generate new token」→「Generate new token (classic)」
  3. Note: github-cli-access
  4. Expiration: 任意(推奨: 90 days)
  5. Select scopes: repo にチェック
  6. 「Generate token」をクリック
  7. トークンをコピー(画面を離れると二度と見れない)
  8. コマンドプロンプトに貼り付け

基本的な使い方

リポジトリ操作

リポジトリ作成

gh repo create my-project --public

# プライベートリポジトリ
gh repo create my-project --private

# 説明付きで作成
gh repo create my-project \
  --public \
  --description "プロジェクトの説明"

# 現在のフォルダをソースにして作成&プッシュ
gh repo create my-project \
  --public \
  --source=. \
  --push

リポジトリ作成の詳細な手順は「GitHubリポジトリ作成の2つの方法:GUI vs CLI徹底比較」をご覧ください。

リポジトリ設定変更

# 説明文変更
gh repo edit --description "新しい説明文"

# プライベートに変更
gh repo edit --visibility private --accept-visibility-change-consequences

# 公開に変更
gh repo edit --visibility public --accept-visibility-change-consequences

# ホームページURL設定
gh repo edit --homepage "https://example.com"

# Wiki有効化
gh repo edit --enable-wiki

# Issue無効化
gh repo edit --disable-issues

リポジトリ情報表示

# 情報表示
gh repo view

# ブラウザで開く
gh repo view --web

Issue操作

Issue作成

# 対話形式で作成
gh issue create

# タイトルと本文を指定
gh issue create \
  --title "バグ報告" \
  --body "詳細な説明"

# ラベル付きで作成
gh issue create \
  --title "機能追加" \
  --body "詳細" \
  --label "enhancement"

Issue一覧表示

# オープンなIssue一覧
gh issue list

# すべてのIssue
gh issue list --state all

# 自分がアサインされているIssue
gh issue list --assignee @me

Issue表示

# Issue #123を表示
gh issue view 123

# ブラウザで開く
gh issue view 123 --web

Pull Request操作

PR作成

# 対話形式で作成
gh pr create

# タイトルと本文を指定
gh pr create \
  --title "機能追加: ユーザー認証" \
  --body "詳細な説明"

# ブラウザで開いて作成
gh pr create --web

PR一覧表示

# オープンなPR一覧
gh pr list

# 自分のPR
gh pr list --author @me

PR表示とマージ

# PR #456を表示
gh pr view 456

# PR #456をマージ
gh pr merge 456

その他便利なコマンド

現在のリポジトリを確認

gh repo view

ブラウザで開く

# リポジトリをブラウザで開く
gh browse

# 特定のIssueを開く
gh issue view 123 --web

# 特定のPRを開く
gh pr view 456 --web

GitHub Actionsの確認

# Workflow実行履歴
gh run list

# 最新のWorkflow詳細
gh run view

# 特定のWorkflowを表示
gh run view 12345

実践的な活用例

例1: 新規プロジェクトの開始

# プロジェクトフォルダ作成
mkdir my-new-project
cd my-new-project

# README作成
echo "# My New Project" > README.md

# Git初期化
git init
git add .
git commit -m "Initial commit"

# GitHubにリポジトリ作成&プッシュ
gh repo create my-new-project --public --source=. --push

例2: Issueを作成してブラウザで確認

# Issue作成
gh issue create --title "バグ修正: ログイン失敗" --body "詳細な説明"

# Issue一覧を確認
gh issue list

# 最新のIssueをブラウザで開く
gh issue view 1 --web

例3: 既存リポジトリのクローンとPR作成

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

# ブランチ作成
git checkout -b feature-branch

# 変更をコミット
git add .
git commit -m "Add new feature"

# プッシュ
git push origin feature-branch

# PRを作成
gh pr create --title "新機能追加" --body "詳細"

GUIとの比較

作業速度の比較

GUI(ブラウザ)での新規リポジトリ作成:

  1. ブラウザを開く(5秒)
  2. GitHubにアクセス(5秒)
  3. New repositoryをクリック(3秒)
  4. フォームに入力(30秒)
  5. Create repositoryをクリック(3秒)
  6. ターミナルに戻る(3秒)
  7. コマンドをコピペ(20秒)
  8. プッシュ(10秒)

合計: 約79秒

CLI(gh コマンド)での新規リポジトリ作成:

  1. コマンド1行で完了(5秒)

合計: 約5秒

具体的なコマンド例

実際に私が Claudeチャットエクスポートツール を管理するために使ったコマンド:

# リポジトリ作成(GUIなら1分以上かかる作業が5秒で完了)
gh repo create my-python --public --source=. --push

# 公開範囲変更(GUIなら設定画面を開いて変更が必要)
gh repo edit --visibility private --accept-visibility-change-consequences

# 情報確認(ブラウザを開く必要なし)
gh repo view

GitHub CLIを使うメリット

1. 作業効率の大幅向上

  • ブラウザとターミナルを行き来する必要がない
  • マウス操作が不要
  • ショートカットキーで高速操作

2. 認証が楽

  • 一度認証すれば以降はパスワード不要
  • Personal Access Tokenの管理が不要
  • セキュアな認証情報保存

3. スクリプト化・自動化が可能

# 複数リポジトリを一気に作成
for repo in project1 project2 project3; do
  gh repo create $repo --public
done

4. 一貫した操作感

  • すべての操作がコマンドラインで統一
  • Gitコマンドとシームレスに連携
  • VSCodeなどのターミナルからも実行可能

5. リモート作業に最適

  • SSHでリモートサーバーに接続している場合でも使える
  • ブラウザが不要なため軽量
  • スクリプトに組み込んで自動化可能

デメリットと対策

デメリット1: 学習コスト

対策: よく使うコマンドから徐々に覚える

# まずはこの3つから
gh repo create  --public --source=. --push
gh repo view
gh issue create

デメリット2: GUIほど直感的ではない

対策: --helpオプションを活用

gh repo --help
gh issue --help
gh pr --help

デメリット3: 初期セットアップが必要

対策: 一度セットアップすれば永続的に使える

学習ロードマップ

レベル1: 基本操作(1週間)

gh auth login
gh repo create
gh repo view

レベル2: Issue/PR管理(2週間)

gh issue create
gh issue list
gh pr create
gh pr merge

レベル3: 高度な操作(1ヶ月)

gh run list
gh release create
gh gist create

まとめ

GitHub CLIは、GitHubの操作を大幅に効率化できる強力なツールです。

こんな人におすすめ:

  • 開発作業の効率を上げたい
  • コマンドライン操作に慣れている
  • 複数のリポジトリを管理している
  • リモート環境で作業することが多い

初めての人へ:
まずは gh repo creategh repo view から始めてみてください。慣れてくると、他のGitHub操作もCLIで行いたくなるはずです。

GitHubの操作をコマンドラインで完結させることで、開発フローが劇的に改善します。ぜひ試してみてください!

関連記事

  • GitHubリポジトリ作成の2つの方法:GUI vs CLI徹底比較
GitHubリポジトリ作成の2つの方法:GUI vs CLI徹底比較
GitHubでリポジトリを作成する方法は大きく分けて2つあります。ブラウザを使ったGUI操作と、GitHub CLIを使ったコマンドライン操作です。この記事では、実際のPythonプロジェクトを例に、両方の方法を詳しく解説します。前提条件G...
  • Claudeチャットを資産化!エクスポートデータを整形するPythonツール
Claudeチャットを資産化!エクスポートデータを整形するPythonツール
Claudeとの会話履歴は貴重な知的財産です。しかし、エクスポートしたJSONファイルは読みにくく、そのままでは活用しづらいのが現状です。この記事では、ClaudeのエクスポートデータをMarkdown形式に整形し、チャット毎に分割して保存...
Development
スポンサーリンク
スポンサーリンク

コメント