Skip to main content

スタックプル要求のクイック スタート

GitHub CLIにgh stack拡張機能をインストールし、スタックされたプル要求の最初のセットを作成します。

メモ

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 拡張機能をインストールする

Shell
gh extension install github/gh-stack

ヒント

GitHub Copilotなどの AI コーディング エージェントでスタック プル要求を使用するには、gh-stack スキルをインストールします。

Shell
gh skill install github/gh-stack

最初のスタックを作成する

  1. スタックを初期化するには、リポジトリに移動し、次のコマンドを実行します。 これにより、追跡エントリと最初のブランチが作成されます。

    Shell
    gh stack init
    

    最初のブランチに名前を付けるメッセージが表示されます。 既定では、スタックはリポジトリの既定のブランチ ( main など) をトランクとして使用しますが、スタックは任意のブランチをターゲットにすることができます。

  2. 通常どおり、最初のブランチ (コードの記述、ステージ変更、コミット) で作業します。

    # ... write code ...
    git add .
    git commit -m "helpful-commit-message"
    
  3. 次の作業の論理ユニットの準備ができたら、新しい分岐をスタックの一番上に追加します。

    Shell
    gh stack add BRANCH-NAME
    # ... write code ...
    git add .
    git commit -m "Another-helpful-commit-message"
    
  4. すべてのブランチをリモートにプッシュします。

    Shell
    gh stack push
    
  5. プル要求を作成し、 GitHub上のスタックとしてリンクします。

    Shell
    gh stack submit
    

    各プル要求は、正しいベース ブランチで作成されます。 最初のブランチは mainをターゲットとし、次のブランチ BRANCH-NAME は最初のブランチをターゲットにします。 レビュー担当者には、そのレイヤーの差分のみが表示されます。 プル要求は、 GitHub 上のスタックとして自動的にリンクされ、その順序を確認して、それらの間をすばやく移動できます。

  6. スタックを表示し、いつでも完全な状態を確認できます。

    Shell
    gh stack view
    

    このコマンドは、すべてのブランチ、そのプル要求リンク、状態、およびそれぞれの最新のコミットを表示します。

  7. gh stack add -Am "MESSAGE"を使用して、すべての変更をステージングし、コミットし、1 つの手順で次のブランチを作成します。 別の git addgit 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"
    
  8. 準備ができたら、すべてをプッシュし、プル要求を作成します。

    Shell
    gh stack submit
    

次のステップ