GitHubの操作を効率化できるツールとして注目されている GitHub CLI(gh)。
Windowsに加えて、WSL2(Windows Subsystem for Linux 2)環境でも使いたいというニーズが急増しています。
この記事では、WindowsおよびWSL2両方にGitHub CLIを導入する方法を、それぞれの特性と注意点を交えながら詳しく解説します。
[目次を開く]
GitHub CLI の魅力
GitHub CLIを使えば、以下のような操作がコマンド一発で実行できます。
- プルリクエストの作成と確認
- イシュー管理
- Actions の確認とトリガー
- リポジトリの作成・クローン など
ターミナル上で全て完結するので、開発の集中力を維持したままGitHub操作が可能になります。
flowchart TD
S(["GitHub CLI 導入"]) --> Q{"どこに入れる?"}
Q -->|"Windows ホスト"| W1[".msi を取得<br>実行してインストール"]
Q -->|"WSL2 Ubuntu"| L1["apt でリポジトリ追加<br>gh をインストール"]
W1 --> W2["gh --version で確認"]
L1 --> L2["gh --version で確認"]
W2 --> W3["gh auth login"]
L2 --> L3["gh auth login"]
W3 --> BR["ブラウザで認証"]
L3 --> BR
BR --> D(["完了: 各環境で認証済み"]) 1. Windows(ホスト環境)へのインストール
手順①:インストーラーの入手
以下のGitHub CLI公式ページから .msi インストーラーをダウンロードします:
手順②:インストール
ダウンロードしたインストーラーを実行し、「Next」をクリックして進むだけで完了します。
完了後、コマンドプロンプトまたはPowerShellで以下を入力:
gh --version バージョンが表示されれば成功です。
手順③:GitHubアカウントと連携
gh auth login GitHub.comとブラウザログインを選ぶのがスムーズです。HTTPSではなくSSHを選択した場合はSSH認証になります。
Authenticate Git with your GitHub credentials?
上記のように、GitHub の資格情報を使用して Git を認証しますか?と聞かれるのでYesと答えてください。
すると下記のようにHow would you like to authenticate GitHub CLI? と聞かれるのでLogin with a web browserを選択してください。
あとは画面の指示に従ってブラウザ認証してください。成功すると下のような画面になります。
2. WSL2環境へのインストール(Ubuntuを例に解説)
WSL2内で開発を完結させている方にとって、CLIをLinux側でも使えるのは非常に便利です。
手順①:リポジトリの追加とパッケージ更新
type -p curl >/dev/null || sudo apt install curl -y
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/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 手順②:GitHub CLIのインストール
sudo apt install gh -y 手順③:インストール確認
gh --version WSL内でも問題なくバージョンが表示されればインストール成功です。
インストールは通ったのに動きが変なとき
gh --version が表示されても、動いているのが Windows 側の実行ファイルだったり、認証の途中で止まったりすることがあります。症状ごとの入口を先に置きます。
| 症状 | まず打つコマンド | 見るところ | 原因 |
|---|---|---|---|
| ファイル指定やリポジトリ認識が噛み合わない | which -a gh | 先頭が /mnt/c/... | Windows 側の実行ファイルを拾っている |
gh auth login がコード表示のまま進まない | echo $BROWSER | 空 | WSL に既定のブラウザが無い |
| 見覚えのあるサブコマンドが「無い」と言われる | gh --version | 版が古い | 配布リポジトリを追加せず既定の apt 版が入っている(手順①からやり直す) |
WSL の gh が Windows 側の実行ファイルになっていないか
WSL2 は既定で Windows の PATH を引き継ぎます。Windows にも GitHub CLI を入れていると WSL のシェルでも gh が解決でき、WSL 側に入れていないのにバージョンが表示されることがあります。
which -a gh
# /usr/bin/gh ← WSL 側(先頭ならOK)
# /mnt/c/Program Files/GitHub CLI/gh.exe ← Windows 側 Windows 側だけ、またはそちらが先に出るなら Windows のバイナリが動いています。WSL のパス(/home/...)は Windows 側から見えないため、ファイル指定やリポジトリ判定で噛み合わなくなります。WSL 側に入っているのに順番で負けているだけなら、~/.bashrc の末尾に alias gh=/usr/bin/gh を足すのが手早い解決です(PATH 全体を書き換えると他のコマンドの解決先まで変わります)。
gh auth login でブラウザが開かないとき
WSL2 には既定のブラウザが無いため、ブラウザ認証を選んでもワンタイムコードを表示したまま止まることがあります。取れる手は2つです。
# ① Windows のブラウザを開けるようにする
sudo apt install wslu -y
export BROWSER=wslview
gh auth login ブラウザを使わずに済ませるなら、GitHub の Web 画面で Personal Access Token を発行し、標準入力から渡します。
gh auth login --with-token < token.txt どちらで通した場合も、最後に gh auth status で読み返してください。token.txt は読み終えたら削除します。
3. 認証はWindowsとWSLで別々に必要?
はい、WindowsとWSL2は別プロファイルとして認識されるため、それぞれで gh auth login を実行する必要があります。
両環境で同一のGitHubアカウントを使うこともできますが、必要に応じて用途を分けるのも一つの手です。
4. 補足:gh のコマンド補完を有効にする(WSL)
BashやZshを使っている場合、以下のように補完設定もできます。
gh completion -s bash >> ~/.bashrc
source ~/.bashrc Zshの場合は .zshrc に同様の設定を追加してください。
まとめ
GitHub CLIは、WindowsでもWSL2でも快適に使えるツールです。
普段WindowsでGUI操作をしていた方も、CLIを導入することで作業効率が大幅に向上します。
特にWSL2と組み合わせることで、Linux上の開発環境を保ちながら、GitHub連携もコマンド一発。
本記事を参考に、ぜひご自身の開発環境にも導入してみてください。
