🚄

開発を爆速化!GitHub CLIで覚えるべきコマンド5選

2023/07/28に公開

本記事では、GitHubを使って日々システム開発している人に向けて、開発スピードを爆速化するために覚えるべきコマンドを5つほどご紹介します。

GitHub CLIとは

GitHub CLIは、コマンドラインからGitHubを直接操作できるツールです。リポジトリの作成やクローン、Pull Requestの作成やマージ、Issueの管理など、GitHub上のさまざまなタスクを素早く効率的に実行できます。

https://cli.github.com/

インストールしていない人はこちらの記事を参考にインストールしてください。

https://github.com/cli/cli#installation

私のGitHub CLIの活用方法

ここまでの記事を読んで「GitHub CLIを使ってあらゆる操作をシェルで完結させるのか(難しそう)」といった先読みをした人もいるかもしれません。私自身そのような崇高な使い方はできていませんし、実際にはWebブラウザでGitHubにアクセスすることも頻繁にあります。

WebブラウザでGitHubにアクセスし、IssueやPull Requestを閲覧・操作している人にとっても、GitHub CLIはとても有用 ということを伝えるべく、この記事を書きました。

この後に、私自身が有用と感じたコマンドを5つ書きますが、5つ全て覚える必要はありません。最初に書く gh browse を覚えるだけでも、その恩恵を実感できるはずです。

覚えるべきコマンド5選

それぞれ、GitHubリポジトリのCloneした先のディレクトリ内で実行することが前提です。

gh browse

GitHubリポジトリのページをブラウザで開くコマンドです。

$ gh browse # => ブラウザが起動し、リポジトリのページを開く

5つ全部覚えられない人もこれだけは覚えるべきです。ブラウザを起動して、GitHubにアクセスし、開発中のリポジトリを探して...というのは非常に効率が悪いので。

gh pr list

GitHubリポジトリに存在するPull Requestのリストを表示します。

$ gh pr list

Showing 1 of 1 open pull request in mruby-esp32/mruby-esp32-mqtt

#2  Make receiving messages event driven  event-driven-receive

単純にPull Requestの一覧をすぐに確認できるという意味でも便利なのですが、前述の gh browse と組み合わせることで、当該Pull Requestのページを直接ブラウザで開くことができます。

$ gh browse 2 # => ブラウザが起動し、#2のPull Requestのページを開く

gh pr checkout

git checkout をPull Requestベースで行うコマンドです。

$ gh pr checkout 2 # => #2のPull Requestのブランチを `git checkout` する

前述の gh pr list でPull Requestの番号を確認して gh pr checkout すれば、ブラウザを開いてブランチ名を確認せずとも簡単にcheckoutができます。

gh pr create

Pull Requestを作成するコマンドです。

$ gh pr create -a yuuu # => yuuuというユーザーをアサインしたPull Requestを作成

この作業もブラウザを開いて行うのは面倒な作業なので、コマンドラインベースで行えるのはとても嬉しいです。ちなみに、このコマンドは git push も同時に行ってくれるので別途 git push しなくて良いという恩恵もあります。

この記事を書いていて知ったのですが -w オプションを付けると、CLIではなくWebブラウザベースでPull Requestのタイトルや本文を入力できるようです。画像などを貼り付ける際は -w を付けておくと捗りそうですね。

gh pr checks

Pull RequestのCIの状態を確認するコマンドです。

$ gh pr checks
   
All checks were successful
0 failing, 12 successful, 0 skipped, and 0 pending checks

✓  Fuzzing                             10m13s  https://github.com/mruby/mruby/actions/runs/4895197562/job/13267431242
✓  Lint Code Base                      1m39s   https://github.com/mruby/mruby/actions/runs/4895197557/job/13267431051
✓  Run pre-commit                      58s     https://github.com/mruby/mruby/actions/runs/4895197558/job/13267431067
✓  Windows-VC                          1m19s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267431064
✓  continuous-integration/appveyor/pr          https://ci.appveyor.com/project/matz/mruby/builds/46972325
✓  macos-latest-clang                  4m12s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267432153
✓  triage                              3s      https://github.com/mruby/mruby/actions/runs/4895197478/job/13267431066
✓  ubuntu-20.04-clang                  2m12s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267432015
✓  ubuntu-20.04-gcc                    1m49s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267431853
✓  ubuntu-22.04-clang                  1m44s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267431704
✓  ubuntu-22.04-gcc                    2m25s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267431542
✓  windows-latest-mingw-gcc            4m51s   https://github.com/mruby/mruby/actions/runs/4895197554/job/13267432293

素早くCIを確認できるのはもちろんのこと、Jobごとのリンクも表示されるので、FailしているJobの詳細もすぐに確認できるメリットもあります。

番外編: gh label create

これは常用するコマンドではないので番外編とさせていただきました🙏

GitHubリポジトリにラベルを作成するコマンドです。

$ gh label create 新しいラベル -c #ff0000 # => 指定した名前・色のラベルを作成

私が所属するチームでは、大体いつも使うラベルは決まっています。しかし、新しくリポジトリを作った時に毎回手動で作成するのは大変です。

CLIを使えば一瞬で作成することができます。
(このままコピペできるように プロンプト $ は省略しています)

gh label delete bug --yes
gh label delete documentation --yes
gh label delete duplicate --yes
gh label delete enhancement --yes
gh label delete 'good first issue' --yes
gh label delete 'help wanted' --yes
gh label delete invalid --yes
gh label delete question --yes
gh label delete wontfix --yes
gh label create 001_WIP -c #89c3eb
gh label create 002_レビュー待ち -c #ee836f
gh label create 003_修正待ち -c #a59aca
gh label create 004_確認 -c #ffc0cf
gh label create 005_保留 -c #fef263
gh label create 006_リリース待ち -c #3eb370

まとめ

私自身、GitHubでよくアクセスするのがIssueやPull Requestなので、挙げたコマンドもそれらに関するものが多くなっています。私はあまり使いこなせていませんがReleasesやProjectを活用している人はそれらに関連するコマンドを覚えるのもアリです。

GitHub CLIを使いこなして開発を爆速化しましょう。

GitHubで編集を提案
Fusic 技術ブログ

Discussion