メモ
This feature is in public preview and subject to change.
Use stacked pull requests to break large code changes into a chain of smaller, dependent pull requests that you can review and merge independently.
スタックは、同じリポジトリ内の一連のプル要求です。各プル要求は、その下のプル要求のブランチを対象とし、1 つのブランチ (通常はメイン ブランチ) に配置される順序付きチェーンを形成します。 1 つの大きなプル要求の代わりに、一連の小さなプル要求を取得します。 各プル要求には独自のフォーカスされた差分があるため、チームメイトは各レイヤーを個別に確認して承認できます。
前提条件
- GitHub CLI (
gh) 2.90.0 以降、および Git 2.20 以降。gh auth loginを使用してGitHub CLIを認証します。
- プッシュできる GitHub リポジトリ。
CLI 拡張機能をインストールする
gh extension install github/gh-stack
gh extension install github/gh-stack
ヒント
GitHub Copilotなどの AI コーディング エージェントでスタック プル要求を使用するには、gh-stack スキルをインストールします。
gh skill install github/gh-stack
gh skill install github/gh-stack
最初のスタックを作成する
-
スタックを初期化するには、リポジトリに移動し、次のコマンドを実行します。 これにより、追跡エントリと最初のブランチが作成されます。
Shell gh stack init
gh stack init最初のブランチに名前を付けるメッセージが表示されます。 既定では、スタックはリポジトリの既定のブランチ (
mainなど) をトランクとして使用しますが、スタックは任意のブランチをターゲットにすることができます。 -
通常どおり、最初のブランチ (コードの記述、ステージ変更、コミット) で作業します。
# ... write code ... git add . git commit -m "helpful-commit-message" -
次の作業の論理ユニットの準備ができたら、新しい分岐をスタックの一番上に追加します。
Shell gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message"
gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message" -
すべてのブランチをリモートにプッシュします。
Shell gh stack push
gh stack push -
プル要求を作成し、 GitHub上のスタックとしてリンクします。
Shell gh stack submit
gh stack submit各プル要求は、正しいベース ブランチで作成されます。 最初のブランチは
mainをターゲットとし、次のブランチBRANCH-NAMEは最初のブランチをターゲットにします。 レビュー担当者には、そのレイヤーの差分のみが表示されます。 プル要求は、 GitHub 上のスタックとして自動的にリンクされ、その順序を確認して、それらの間をすばやく移動できます。 -
スタックを表示し、いつでも完全な状態を確認できます。
Shell gh stack view
gh stack viewこのコマンドは、すべてのブランチ、そのプル要求リンク、状態、およびそれぞれの最新のコミットを表示します。
-
gh stack add -Am "MESSAGE"を使用して、すべての変更をステージングし、コミットし、1 つの手順で次のブランチを作成します。 別のgit addやgit commitは必要ありません。 現在のブランチにコミットがまだない場合、コミットはそこに着陸します。既にコミットがある場合は、新しいブランチが作成されます。# Commit lands on the current branch gh stack add -Am "Auth middleware" # Current branch already has commits, so this creates the next branch gh stack add -Am "API routes" -
準備ができたら、すべてをプッシュし、プル要求を作成します。
Shell gh stack submit
gh stack submit