開発を爆速化!GitHub CLIで覚えるべきコマンド5選
本記事では、GitHubを使って日々システム開発している人に向けて、開発スピードを爆速化するために覚えるべきコマンドを5つほどご紹介します。
GitHub CLIとは
GitHub CLIは、コマンドラインからGitHubを直接操作できるツールです。リポジトリの作成やクローン、Pull Requestの作成やマージ、Issueの管理など、GitHub上のさまざまなタスクを素早く効率的に実行できます。
インストールしていない人はこちらの記事を参考にインストールしてください。
私の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を使いこなして開発を爆速化しましょう。
Discussion