gh pr update-branchでPRブランチを更新する

GitHub CLIでPull RequestのブランチをベースブランチのHEADと合流させるにはgh pr update-branchコマンドを使う。

gh pr update-branch [<number> | <url> | <branch>]

引数を省略すると、現在のブランチに紐づくPRが対象になる。

$ gh pr update-branch
✓ PR branch updated

PR番号を指定して更新もできる。

$ gh pr update-branch 23
✓ PR branch updated

GitHubのPR画面に表示される「Update branch」ボタンと同じ操作をCLIから実行できる。

デフォルトはマージコミットで更新される

gh pr update-branchはデフォルトでベースブランチをPRブランチにマージコミットで取り込む。ローカルのgit mergeでベースブランチを取り込む操作に相当する。

このため、ベースブランチが更新されるたびにマージコミットが積み重なる。

–rebaseオプションでリベース更新する

マージコミットを作らずベースブランチの最新コミットの上にPRブランチをリベースしたい場合は--rebaseオプションを指定する。

$ gh pr update-branch 23 --rebase
✓ PR branch updated

コミット履歴をきれいに保ちたい場合は--rebaseオプションが有効である。

なお、リポジトリの設定でリベースによる更新を許可していない場合、--rebaseオプションを指定するとエラーになる。

別リポジトリのPRを更新する

-R--repo)オプションで別リポジトリのPRを指定して更新できる。

$ gh pr update-branch 23 --repo owner/repo
✓ PR branch updated

まとめ

gh pr update-branchを使うと、GitHubのWeb画面を開かずにCLIからPRブランチをベースブランチの最新の変更で更新できる。マージコミットでの更新がデフォルトであり、コミット履歴をきれいに保ちたい場合は--rebaseオプションを使う。

gh pr update-branch