gh-domino: Rebase deine gestapelten Pull Requests
(github.com/134130)- Eine GitHub-CLI-Erweiterung, die stacked PRs auf GitHub automatisch rebased
- Es gibt zwar großartige Tools wie Graphite oder stacked-pr, aber deren Einstiegshürde ist zu hoch
- etwa weil Stacked PRs nicht mit git, sondern nur mit dem jeweiligen Tool erstellt werden können
- oder weil es sehr viele Optionen in lokalen Konfigurationsdateien gibt
- Deshalb wurde ein sehr einfaches Rebase-Tool entwickelt, das ohne Konfiguration auskommt und nur die PR-Funktionen von GitHub nutzt
Beispiel
Angenommen, es gibt die folgenden Stacked PRs:
- #102 (main <- stack-1)
- #103 (stack-1 <- stack-2)
- #104 (stack-2 <- stack-3)
Nachdem PR #102 in main gemergt wurde, müssen die PRs #103 und #104 rebased werden.
- Schon das Rebasen von nur zwei PRs ist ziemlich lästig
- Wenn der Graph etwa dadurch komplexer geworden ist, dass in #102 zusätzliche Commits enthalten sind, ist es sehr mühsam, sich an die git-Befehle zum Finden des gemeinsamen Parents zu erinnern
- Außerdem werden Stacked PRs nicht ständig verwendet, sondern eher nur gelegentlich, weshalb man den Ablauf noch leichter vergisst
Mit den folgenden Befehlen lässt sich das Rebase einfach automatisch ausführen:
gh domino --dry-run
gh domino [--auto]
Weitere Beispiele finden sich in der README.md.
2 Kommentare
Oh, ich dachte, GitHub macht das automatisch – etwa nicht?!
Wenn man die von GitHub bereitgestellte Funktion zum sicheren Löschen von Branches nutzt, wird der Base-Branch zwar automatisch geändert, aber bei einem Squash-Merge fehlt der Bezug in der Git-History, wodurch Konflikte entstehen!
Außerdem ist es lästig, den Base-Branch ändern zu müssen, wenn man Safe Delete nicht verwendet und den Branch stattdessen direkt mit Git löscht!