はじめに
GitHub公式CLIツールghのコマンドを、使用頻度別にまとめました。リポジトリ作成、Pull Request・Issueのやり取り、GitHub Actionsの確認まで、ブラウザを開かずターミナルだけで完結させたい場面を中心に整理しています。
ghはgitコマンドとは別物です。gitはバージョン管理そのものを行う本体のコマンドで、GitHub以外のホスティングサービスでも共通して使えます。ghはGitHubのAPIを叩いて、PR作成・Issue操作・リポジトリ作成・Actions確認などGitHub固有の機能を扱うための公式CLIです。gitコマンドのチートシートはこちらを参照してください。
本記事の見方
- 🔥:ほぼ毎日使う。反射的に打てるようにしておきたい
- ⭐:頻度は高くないが、覚えておくと役立つ
- 📝:知っていると便利な発展コマンド
事前準備・認証
| 頻度 |
コマンド |
説明 |
| 🔥 |
gh auth login |
ブラウザ経由でGitHubアカウントにログインし、ghが使えるようにする |
| ⭐ |
gh auth status |
現在ログイン中のアカウント・認証状態を確認 |
| 📝 |
gh auth logout |
ログアウトする |
| 📝 |
gh auth refresh |
トークンのスコープ(権限範囲)を追加・更新する |
gh auth login # 対話形式でログイン(ブラウザ認証を推奨される)
gh auth status # 今どのアカウントでログインしているか確認
リポジトリ操作(gh repo)
| 頻度 |
コマンド |
説明 |
| 🔥 |
gh repo clone <owner>/<repo> |
リポジトリをクローンする(git cloneのURL指定を省略できる) |
| 🔥 |
gh repo create |
新規リポジトリを作成する(対話形式、またはオプション指定) |
| ⭐ |
gh repo view |
現在のディレクトリに対応するリポジトリの情報を表示 |
| ⭐ |
gh repo view --web |
対応するリポジトリのページをブラウザで開く |
| ⭐ |
gh repo fork |
リポジトリをフォークする |
| 📝 |
gh repo list <owner> |
指定ユーザー・Organizationのリポジトリ一覧を表示 |
| 📝 |
gh repo delete |
リポジトリを削除する(確認プロンプトあり) |
gh repo create my-app --private --source=. --remote=origin --push
# → カレントディレクトリを元に、privateリポジトリを作成し、
# originとして登録、初回pushまで一気に実行する
Pull Request操作(gh pr)
| 頻度 |
コマンド |
説明 |
| 🔥 |
gh pr create |
現在のブランチからPull Requestを作成する(対話形式) |
| 🔥 |
gh pr list |
オープン中のPR一覧を表示 |
| 🔥 |
gh pr view <番号> |
指定PRの詳細を表示(番号省略時は現在のブランチに対応するPR) |
| 🔥 |
gh pr checkout <番号> |
指定PRのブランチをローカルにチェックアウトする |
| ⭐ |
gh pr status |
自分に関連するPR(自分が作成・レビュー依頼されている等)の状況を一覧表示 |
| ⭐ |
gh pr merge <番号> |
PRをマージする(マージ方式を選べる) |
| ⭐ |
gh pr diff <番号> |
PRの差分をターミナルで表示 |
| ⭐ |
gh pr review <番号> |
PRに対してレビュー(Approve/Request changes/コメント)を行う |
| 📝 |
gh pr close <番号> |
PRをクローズする(マージせずに閉じる) |
gh pr create --title "ログイン画面の実装" --body "認証機能を追加しました" --base main
gh pr merge 42 --squash --delete-branch # squashマージし、マージ後にブランチも削除
Issue操作(gh issue)
| 頻度 |
コマンド |
説明 |
| 🔥 |
gh issue create |
新規Issueを作成する(対話形式) |
| 🔥 |
gh issue list |
オープン中のIssue一覧を表示 |
| ⭐ |
gh issue view <番号> |
指定Issueの詳細を表示 |
| ⭐ |
gh issue close <番号> |
Issueをクローズする |
| ⭐ |
gh issue comment <番号> |
Issueにコメントを追加する |
| 📝 |
gh issue list --assignee @me |
自分にアサインされているIssueだけを絞り込み表示 |
gh issue create --title "ログインボタンが反応しない" --body "iPhone Safariで再現" --label bug
gh issue list --label bug --state open
GitHub Actions操作(gh workflow / gh run)
| 頻度 |
コマンド |
説明 |
| ⭐ |
gh run list |
ワークフロー(GitHub Actions)の実行履歴一覧を表示 |
| ⭐ |
gh run view <ID> |
指定した実行の詳細・ログを表示 |
| ⭐ |
gh run watch |
実行中のワークフローの進行状況をリアルタイムで表示 |
| 📝 |
gh workflow list |
リポジトリに登録されているワークフロー一覧を表示 |
| 📝 |
gh workflow run <ワークフロー名> |
ワークフローを手動でトリガー実行する(workflow_dispatch対応時) |
| 📝 |
gh run rerun <ID> |
失敗した実行を再実行する |
gh run list --limit 5 # 直近5件の実行結果を確認
gh run watch # 今動いているワークフローをリアルタイムで見守る
その他よく使うコマンド
| 頻度 |
コマンド |
説明 |
| ⭐ |
gh browse |
現在のリポジトリのページをブラウザで開く |
| ⭐ |
gh api <エンドポイント> |
GitHub REST/GraphQL APIを直接叩く(認証済みトークンが自動で使われる) |
| ⭐ |
gh gist create <ファイル> |
ファイルをGistとして公開・非公開で作成する |
| 📝 |
gh release create <タグ名> |
リリースを作成する(バイナリ等のアセット添付も可能) |
| 📝 |
gh secret set <名前> |
リポジトリのActions用シークレットを設定する |
| 📝 |
gh alias set <名前> '<コマンド>' |
よく使うコマンドの組み合わせにエイリアスを設定する |
gh api repos/itstar-lab/recipe-app/actions/runners/registration-token -X POST
# → GitHub Actionsセルフホストランナーの登録トークンをAPI経由で取得する例
gh browse # 今いるリポジトリのGitHubページを開く
gh alias set co 'pr checkout' # `gh co 42` で `gh pr checkout 42` と同じ動作にする
gh apiで任意のAPIを叩く例
ghのサブコマンドとして用意されていない操作でも、gh apiを使えばGitHub REST APIを直接呼び出せます。認証トークンの管理をgh側に任せられるため、curlで自前にヘッダーを組み立てるより手軽です。
gh api user # 自分自身のユーザー情報を取得
gh api repos/itstar-lab/recipe-app # 特定リポジトリの情報を取得
gh api repos/itstar-lab/recipe-app/issues -X GET -f state=open # クエリパラメータ付きで取得
まとめ:迷ったときの基本フロー
gh auth status # 1. ログイン状態を確認
gh repo view # 2. 今のリポジトリ情報を確認
gh pr create # 3. PRを作成
gh pr status # 4. 自分のPR状況を確認
gh pr merge <番号> --squash # 5. マージ
コマンド・サブコマンドとも--helpを付けると詳細な使い方が確認できます(gh pr create --help等)。迷ったら--helpが最も確実です。
参考