# スタックされたプル要求の作成

GitHub CLIまたは直接GitHubでgh stack拡張機能を使用して、依存するプル要求のスタックを作成します。

> \[!NOTE] この機能はパブリック プレビュー段階であり、変更される可能性があります。

GitHub CLIまたは GitHub Web サイトで、`gh stack`拡張機能を使用して、スタックプル要求を作成します。

> \[!NOTE]
> スタック プル要求では、すべてのブランチが同じリポジトリに存在する必要があります。 クロスフォーク スタックはサポートされていません。

## を使用してスタックを作成する GitHub CLI

1. スタックを初期化します。 これにより、トランク ブランチの上に最初のブランチが作成され、チェックアウトされます。

   ```shell copy
   gh stack init auth-layer
   ```

2. 最初のレイヤーのコードを記述してから、変更をステージングしてコミットします。

   ```shell copy
   git add .
   git commit -m "helpful-commit-message"
   ```

3. 次の作業の論理ユニットの分岐を追加します。 新しいブランチは、現在のブランチの上に作成されます。

   ```shell copy
   gh stack add BRANCH-NAME
   ```

4. 新しいブランチでコードを記述してコミットします。 追加レイヤーごとに繰り返します。

5. すべてのブランチをリモート リポジトリにプッシュし、 GitHubにスタックプル要求を作成します。

   ```shell copy
   gh stack submit
   ```

   各プル要求は正しいベース ブランチで作成されるため、レビュー担当者はそのレイヤーの差分のみを確認し、プル要求はスタックとして自動的にリンクされます。

## GitHub Web サイトからのスタックの作成

CLI を使用せずにスタックを作成するには、各プル要求のベース ブランチをその下のブランチに設定します。

1. 通常どおり、最初の pull request を作成します。 通常、ベースは `main`をターゲットとします。

2. 次のプル要求を作成し、その基本ブランチを最初のプル要求のブランチに設定します。 2 つのプル要求をスタックとしてリンクするには、\[ **スタックの作成** ] オプションを選択します。

   作成されると、スタックには、一緒にリンクされたプル要求が表示されます。

   * プル要求の上部に <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-stack" aria-label="The stack icon" role="img"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg> スタック アイコンには、表示しているレイヤーを示す番号が表示されます。
   * マージ ボックスにスタック マップが表示されます。 スタック内のすべてのプル要求とその状態が表示され、ワンクリックで任意のレイヤーに移動できます。

3. 追加のプル要求ごとに繰り返し、その前にプル要求のブランチを対象とします。

## 既存のプル要求をスタックに変換する

ブランチが並んでいるオープン プル要求が既にある場合、各プル要求のベース ブランチは、その下のプル要求のヘッド ブランチ GitHub 、チェーンを認識し、それらをスタックに変換するための **推奨バナー** オファリングを表示します。

1. 対象となるプル要求のいずれかで、バナーを選択して、スタックをプレビューするダイアログを開き、各プル要求を上から下に順番に一覧表示します。

2. プレビューを確認し、プル要求をスタックにリンクすることを確認します。

確認すると、各プル要求のヘッダーにスタック マップが表示されます。

## GitHub Web サイトから既存のスタックに追加する

既に存在するスタックに新しいプル要求を追加するには:

1. スタックでプル要求を開き、ヘッダーの\*\*<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-stack" aria-label="The stack icon" role="img"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>\*\* をクリックして、\[**スタックに追加] <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="Add button" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>** クリックします。

2. ベース ブランチは、トップ プル要求のヘッドに自動的に設定されます。 新しいプル要求のヘッド ブランチを選択し、\[ **プル要求の作成**] を選択します。

3. **\[スタックに追加] <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="Add button" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>** 選択して、プル要求を作成します。

新しいプル要求がスタックの一番上に追加されます。

## 詳細については、次を参照してください。

* [Stacked pull requests CLI コマンド](/ja/pull-requests/reference/stacked-prs-cli-commands)