gh-domino: スタックされた Pull Request をリベース
(github.com/134130)- GitHub で stacked PR を自動で rebase してくれる GitHub CLI 拡張ツール
- Graphite や stacked-pr のような優れたツールもあるが、これらは導入のハードルが高すぎる
- stacked PR は git ではなく、そのツールを使ってのみ作成しなければならなかったり
- ローカル設定ファイルのオプションが非常に多かったりする
- Zero-configuration と GitHub の PR 機能だけで十分な、とてもシンプルな rebase ツールが必要だったため自作
例
次のような stacked PR が存在する状況:
- #102 (main <- stack-1)
- #103 (stack-1 <- stack-2)
- #104 (stack-2 <- stack-3)
PR #102 を main にマージしたあと、#103 と #104 の PR を rebase する必要がある。
- たった 2 つの PR を rebase するだけでもかなり面倒で、
- 実際には #102 に追加コミットが入るなどの理由で graph が複雑になった場合、共通の親を探す git コマンドを思い出すのは非常に厄介
- また、stacked PR は日常的に使うものではなく、時々必要な場合にだけ使うため、なおさら忘れやすい
次のコマンドで簡単に rebase を自動実行できる:
gh domino --dry-run
gh domino [--auto]
より詳しい例は README.md で確認できます。
2件のコメント
えっ、GitHubが自動でやってくれるものだと思っていましたが、違うんですか?!
GitHubが提供する safe delete branch 機能を使うと base branch は自動で変更してくれますが、squash merge の場合は git history の関連がないため conflict 状態になってしまいます!
また、safe delete を使わずに git でブランチを直接削除する場合も、base branch を変更しなければならない煩わしさがあります!