スタックされたプル リクエストは、標準の Git ブランチと通常のプル リクエストに基づいて構築されているため、ローカル ワークフローに gh stack CLI 以外のツールを使用することを選択できます。 Jujutsu (jj)、Sapling、git-town などの別のツールでブランチチェーンを管理している場合は、gh stack link コマンドを使用して、それらのブランチを GitHub 上でスタックとして開くことができます。
gh stack link コマンドは、GitHub API のみを呼び出して積み重ねられたプルリクエストを作成します。ローカルのトラッキング ブランチや設定は作成されません。 ブランチに既にオープンなプル リクエストがある場合、link はそれを使用します。それ以外の場合は、link は適切なベース ブランチで下書きプル リクエストを作成します。
ブランチをスタックとしてリンクする
-
任意のツールを使用して、一連のブランチをローカルに作成します。 たとえば、Jujutsu では次のようになります。
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 @ -
ブランチをプッシュし、下から上に一覧表示されたブランチをスタックとしてリンクします。
gh stack link change1 change2 change3これにより、ブランチがプッシュされ、正しいベースを持つ各ブランチに対してプルリクエストが作成され、GitHub上のスタックとしてリンクされます。
既存のスタックへの追加
linkで作成したスタックにさらにブランチを追加するには、スタック内のプルリクエストとブランチの完全な一覧を使用して、gh stack linkをもう一度、下から上に実行します。 既存のプルリクエストを番号で参照できます。
gh stack link 123 124 125 change4 change5
ベース ブランチの設定または pull request のオープン
既定では、link はリポジトリの既定のブランチを対象とし、下書きのプル リクエストを作成します。 この動作を変更するには:
--baseを使用して、別のトランク ブランチを指定します。--openを使用して、下書きではなく、pull requests をレビューの準備完了としてマークします。
gh stack link --base develop --open change1 change2 change3
完全なローカルトラッキングのためのブランチの取り込み
gh stack rebase、gh stack sync、スタック ナビゲーションなどのコマンドを使用できるように完全なローカル スタック追跡が必要な場合は、代わりにgh stack initを使用して既存のブランチを adopt してから送信してください。
gh stack init change1 change2 change3
gh stack submit