# 積み上げプル要求で他のツールを使用する

Jujutsu、Sapling、git-town などのツールで、積み上げプル要求を使用します。

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

スタックプル要求は、標準の Git ブランチと通常のプル要求に基づいて構築されているため、ローカル ワークフローに `gh stack` CLI 以外のツールを使用することを選択できます。 Jujutsu (jj)、Sapling、git-town などの別のツールを使用してブランチ チェーンを管理する場合は、 `gh stack link` コマンドを使用して、 GitHub上のスタックとしてそれらのブランチを開くことができます。

`gh stack link` コマンドは、GitHub API のみを呼び出してスタックされたプル要求を作成します。ローカル追跡は作成されません。 ブランチに既にオープン プル要求がある場合、 `link` はそれを使用します。それ以外の場合は、適切なベース ブランチを使用して下書きプル要求が作成されます。

## 分岐をスタックとしてリンクする

1. 任意のツールを使用して、ブランチのチェーンをローカルに作成します。 たとえば、Jujutsu では次のようになります。

   ```shell
   jj new main -m "first change"
   jj bookmark create change1 --revision @

   jj new -m "second change"
   jj bookmark create change2 --revision @

   jj new -m "third change"
   jj bookmark create change3 --revision @
   ```

2. ブランチをプッシュし、下から上に一覧表示されたスタックとしてリンクします。

   ```shell
   gh stack link change1 change2 change3
   ```

   これにより、ブランチがプッシュされ、正しいベースを持つ各ブランチのプル要求が作成され、 GitHub上のスタックとしてリンクされます。

## 既存のスタックへの追加

`link`で作成したスタックに分岐を追加するには、スタック内のプル要求とブランチの**完全な**一覧を使用して、下から上に`gh stack link`をもう一度実行します。 既存のプル要求を番号で参照できます。

```shell
gh stack link 123 124 125 change4 change5
```

## ベース ブランチの設定または pull request のオープン

既定では、 `link` はリポジトリの既定のブランチを対象とし、下書きのプル要求を作成します。 この動作を変更するには:

* `--base`を使用して、別のトランク ブランチを指定します。
* `--open`を使用して、下書きではなく、pull requests をレビューの準備完了としてマークします。

```shell
gh stack link --base develop --open change1 change2 change3
```

## 完全なローカル追跡のためのブランチの採用

`gh stack rebase`、`gh stack sync`、スタック ナビゲーションなどのコマンドを使用できるように、完全なローカル スタック追跡が必要な場合は、代わりに`gh stack init`を使用して既存のブランチを採用してから送信します。

```shell
gh stack init change1 change2 change3
gh stack submit
```

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

* [スタックされたプル要求](/ja/pull-requests/reference/stacked-pull-requests)