こんにちは、ATOM事業本部の古川です。
私はもともとGit操作はCLIツールで、GitHub操作はブラウザで行っており、このGitとGitHubのツールの切り替えに不便さを感じていました。
しかし、少し前にGitHub公式のCLIツールghが公開され、このツールを使うようになってからは切り替えの不便さを感じることなく、かなり便利に使えているので、本記事ではgh
の自分なりの使い方を紹介したいと思います。
インストール
macOSではHomebrewでgh
コマンドをインストールできます。
brew install gh
他のインストール方法についてはInstallationを参考にしてください。
gh
コマンドがインストールされ、パスが通っているかはgh version
コマンドで確認できます。
$ gh version gh version 2.70.0 (2025-04-11) https://github.com/cli/cli/releases/tag/v2.70.0
ログイン
gh
コマンドを使う場合は事前にGitHubアカウントで認証する必要があります。
認証はgh auth login
コマンドで対話的に行えます。
gh auth login
ユースケース
ここから私がよく使うユースケースを紹介します。 私はプルリクエスト関係の機能しか使わず、紹介するコマンドはプルリクエスト関係のものが主となります。
プルリクエストを作成する
ローカルでブランチを切って作業を行い、その作業が完了したら、その内容をベースブランチにマージするためにプルリクエストを作成すると思います。
このプルリクエストの作成はgh pr create
コマンドで行えます。
gh pr create
このコマンドはローカルの現在のブランチからベースブランチに対するプルリクエストを対話的に作成します。
また、オプションによって事前にメタデータを設定することもできます。
例えば、私は-a @me
オプションを付けて、作成したプルリクエストのAssigneeを自分にするようにしています。
gh pr create -a @me
そのほかに、-d
オプションを付けるとドラフト状態でプルリクエストが作成され、こちらのオプションもよく使っています。
gh pr create -d
プルリクエストのCIを確認する
プルリクエストを作成した後はCIがきちんと通るかを確認したいと思います。
このCIが通るかの確認はgh pr checks
コマンドで行えます。
gh pr checks 123
プルリクエストの指定は引数に番号やURL、ブランチを渡すことで行え、引数を渡さなかった場合は現在のブランチに対応するプルリクエストに対して操作が行われます。 これはプルリクエストに対する操作を行う他のコマンドでも同様です。
gh pr checks
コマンドはオプションなしで実行すると、CIの実行が完了していなくても現在の状況を表示し、終了してしまいます。
そのため、私はCIの完了まで待つ--watch
オプションを付けて利用しています。
gh pr checks -i 5 --watch
-i
オプションはCIの状況を取得する間隔を秒で指定するオプションです。このオプションを省略した場合は10秒間隔で状況を取得します。
プルリクエストをマージする
プルリクエストのCIが通り、レビューが完了したら次はプルリクエストをマージすると思います。
このプルリクエストのマージはgh pr merge
コマンドで行えます。
gh pr merge
私のチームではfeatureブランチをベースブランチにマージする場合はスカッシュマージでマージするので、次のオプションを付けて利用する場合が多いです。
gh pr merge -d -s
-d
オプションでマージ後にマージ元のローカルブランチとリモートブランチを削除します。
-s
オプションでスカッシュマージを行います。
また、マージ前に本当にCIが通っているか、レビューが終わっているか確認したい場合もあります。そのときはgh pr view
コマンドを実行して、プルリクエストの情報を表示し、確認しています。
gh pr view
プルリクエストをレビューする環境を整える
開発中には他のメンバーからプルリクエストのレビューを依頼され、その全体像を把握するためにローカル環境にそのコードを持ってきたい場合もあると思います。 この場合はいくつかのコマンドを実行して、プルリクエストがレビューしやすい環境を整えています。
まず、gh pr status
コマンドやgh pr list
コマンドで自分に依頼されているプルリクエストを確認します。
# 自分が作成したプルリクエストやレビュー依頼されたプルリクエストが表示される gh pr status # 自分がレビュー依頼されたプルリクエストが表示される gh pr list --search "review-requested:@me"
次に、依頼されているプルリクエストの番号が分かったらgh pr checkout
コマンドでそのコードをローカルでチェックアウトします。
gh pr checkout 123
そして、gh pr view --web
コマンドを実行してそのプルリクエストのページをブラウザで開きます。
gh pr view 123 --web
私はこのようにしてプルリクエストをレビューする環境を整えています。
まとめ
gh
はターミナルからGitHubを操作するかなり便利なツールです。
CLIツールでGitを操作しており、GitHubをブラウザで操作することに不便さを感じている人はぜひ使ってみてください。