GitHub CLI で PR の作成からマージまでを行う流れ

GitHub

GitHub の PR (Pull Request) の一連の処理を GitHub CLI で行う流れについてです。

効率はブラウザでやるのと大差無い気がしますが、ターミナルとブラウザのウィンドウを行き来しなくて済むので複数の PR を連続して処理したいときなどにじゃっかん楽な気がします。 気のせいかもしれません。

一連の流れをかんたんにまとめておきます。

確認時のバージョン

gh --version
gh version 2.44.1 (2024-02-16)
https://github.com/cli/cli/releases/tag/v2.44.1

1. PR を作成する

まず PR を作成します。 ブランチを対象のブランチに切り替えてから gh pr create コマンドを使います。

git switch (branch)
gh pr create --assignee (user) --fill-verbose

ほとんどの場合はすでに対象のブランチで作業をしているのでブランチ切り替えが必要なことは稀です。

  • --assignee で担当者を決められます。 自分の場合は @me とします。
  • --fill-verbose を付けるとタイトルとボディを自動で入力してくれます。 ボディは PR 作成時のコミット一覧です。 これが便利です。

コマンドを実行すると、ヘッドブランチが GitHub にまだ無い場合は、まずブランチを push するかどうかを尋ねられるので push してよい場合は push します。

? Where should we push the '(branch)' branch? 

その後 PR が作成されてその URL が出力されます。

2. GitHub Actions の実行ステータスをチェックする

トリガーされた GitHub Actions がある場合はステータスをチェックします。 gh pr checks コマンドを使います。

gh pr checks --watch

--watch を付けるとすべての Actions の実行が成功か失敗で終了するまでターミナルでウォッチできます。

3. PR のコメントをチェックする

Actions が終了したら PR のコメントをチェックします。 gh pr view コマンドを使います。

gh pr view

Actions の結果以外にチェックするものがなければこのステップはスキップします。

4. PR をマージする

問題がなければ PR をマージします。 gh pr merge コマンドを使います。

gh pr merge --merge --delete-branch
  • --merge を付けるとマージコミットを行う形でマージします。
  • --delete-branch を付けるとマージ後にヘッドブランチを削除してくれます。 リモート( GitHub )のブランチに加えてローカルのブランチも削除できます。 ローカルでそのブランチをチェックアウトしている場合は自動的にベースブランチ(デフォルトブランチ?)に切り替えてくれます。 便利です。

アバター
後藤隼人 ( ごとうはやと )

Python や PHP を使ってソフトウェア開発やウェブ制作をしています。詳しくはこちら