このプロジェクトについて

gh stackは、スタックされたブランチとプルリクエストを管理するGitHub CLI拡張機能です。スタックPRは大きな変更を、互いに積み重なるレビュー可能な小さなプルリクエストの連鎖に分割します。このツールはブランチ作成を自動化し、ブランチをリベースされた状態に保ち、正しいPRベースブランチを設定し、レイヤー間のナビゲーションを行います。 インストールは`gh extension install github/gh-stack`で行い、GitHub CLI v2.0+が必要です。AIコーディングエージェント向けにオプションのスキルをインストールできます。 コアモデル: スタックとはブランチの順序付きリストであり、各ブランチはその下のブランチに基づき、最下位はトランクブランチ(通常はmain)に基づきます。スタックのメタデータは`.git/gh-stack`にJSONとしてローカルに保存され、リベース状態は別ファイルに保存されます。 コマンドには以下が含まれます: - init: スタックを初期化し、オプションで既存ブランチを採用し、トランクを設定可能。 - add: スタックの最上位に新しいブランチを作成し、変更のステージングとコミットのオプションあり。 - checkout: スタック番号、PR番号、PR URL、またはブランチ名でスタックをチェックアウト。ローカルおよびリモートスタック用のインタラクティブピッカーを含む。 - rebase: フェッチしてスタック全体でカスケードリベースを実行。downstack/upstack/no-trunkのスコープ指定とcontinue/abort処理あり。 - modify: ブランチのdrop、fold、insert、rename、reorderを行うインタラクティブなターミナルUI。 - sync: フェッチ、リモートスタックの調整、トランクのfast-forward、カスケードリベース、プッシュ、PR状態の同期、スタックのリンク、オプションでマージ済みブランチのpruneを実行。 - push: ブランチごとのforce-with-leaseチェックを行い、アクティブなブランチをプッシュ。 - submit: ブランチをプッシュし、PRとGitHubスタックを作成または更新。インタラクティブエディタまたは自動モードあり。 - link: ローカル追跡なしでブランチ名またはPR番号からGitHubスタックを作成または更新。他のローカルブランチツールと併用すると便利。 - merge: 1つ以上のスタックPRをオール・オア・ナッシング操作でマージ。マージ方法のオプションとマージキューの認識あり。 - view: スタックブランチ、順序、PRリンク、最近のコミットを表示。shortおよびJSON出力あり。 - unstack/delete: ローカル追跡および/またはGitHubからスタックを削除。 - ナビゲーションコマンド(up、down、top、bottom)は現在のスタック内のブランチ間を移動します。 READMEには、フラグ、例、前提条件、および分岐処理やマージキューとの相互作用などの動作が詳細に記載されています。