GitHub CLI(gh コマンド)を使うと、Issue作成、ブランチ、PR、マージの流れをターミナルだけで完結できます。ブラウザへの切り替えが不要になり、開発中の集中が途切れません。
gitとghの役割
gitはローカルのバージョン管理、ghはGitHub上のリソース操作を担当します。ghはgitの代替ではなく補完するツールで、判断基準はローカル操作はgit、GitHub操作はghです。
| 観点 | git | gh |
|---|---|---|
| 提供元 | Git | GitHub |
| 役割 | ローカルのバージョン管理 | GitHub 上のリソース操作 |
| 主な操作 | commit, branch, merge | PR, Issue, リポジトリ管理 |
セットアップ
brew install gh
gh auth login
認証はブラウザ経由のワンタイムコード方式です。gh auth status で認証状態を確認できます。
Windows の場合は winget install --id GitHub.cli、Linux の場合は GitHub CLI公式インストール手順 を参照してください。
Issue、PR、マージの流れ
Issue 作成、ブランチ、コミット
# Issue 作成(gh)
gh issue create --title "検索機能を追加する" --label enhancement --assignee @me
# ブランチ作成・コミット・プッシュ(git)
git checkout -b feature/issue-10-search
git add .
git commit -m "検索機能を実装 (#10)"
git push -u origin feature/issue-10-search
コミットメッセージに #10 を入れると、GitHub 上で Issue とコミットが自動リンクされます。
PR 作成、マージ
# PR 作成(本文に closes #10 で Issue を自動クローズ)
gh pr create --title "検索機能を追加" --body "closes #10"
# マージ(squash + ブランチ削除)
gh pr merge --squash --delete-branch
--draftを付けると下書きPRを作成でき、gh pr readyでレビュー可能状態に切り替えられます。--squashは複数コミットを1つにまとめるので、mainの履歴がきれいに保たれます。
よく使う 4 つのコマンド
| コマンド | 用途 | 例 |
|---|---|---|
gh browse |
ブラウザでリポジトリを開く | gh browse src/index.ts |
gh status |
全リポジトリの通知を一覧表示 | gh status |
gh pr checkout |
他人の PR をローカルに取得 | gh pr checkout 15 |
gh api |
GitHub API を直接実行 | gh api repos/owner/repo --jq '.stargazers_count' |
gh apiは認証が自動処理されるので、トークンを手動で管理する必要がありません。--jqでJSONから必要なフィールドだけを抽出できます。
まとめ
- ローカル操作は
git、GitHub操作はghで使い分けます -
closes #10によるIssue自動クローズと--squash --delete-branchで、マージ後の後片付けも自動化できます -
gh pr createとgh pr mergeだけでも、ブラウザへの切り替えが大幅に減ります
この記事の詳細版はZennで公開しています: GitHub CLIでIssueからPRマージまで完結させる実践ガイド