スタックされた差分
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: 実験的機能
GitLab CLIでスタックされた差分を使用して、互いに積み重ねて最終的に機能を提供する小さな変更を作成します。各スタックは個別のものなので、次のことができます:
- 以前の変更がレビューされている間に、新しい機能をビルドし続けることができます。
- 他の作業に影響を与えることなく、特定の差分に関するレビューフィードバックに対応します。
- 承認されたら、差分を個別にマージします。
スタックされた差分のワークフローは次のとおりです:
変更の作成:
glab stack saveを実行すると、GitLab CLIは次のことを行います:- すべての変更をステージングします。
- あなたのメッセージで新しいコミットを作成します。
- このコミット用の新しいブランチを作成します。
- あなたを新しいブランチに自動的に移動します。
GitLabへの同期:
glab stack syncを実行すると、GitLab CLIは次のことを行います:- あなたのスタック内のすべてのブランチをGitLabにプッシュします。
- まだマージリクエストがない差分ごとにマージリクエストを作成します。
- マージリクエストを連結します。最初のものを除き、各マージリクエストは以前の差分ブランチをターゲットとします。
CLIのこの機能のベースコマンドはstackであり、これを他のコマンドで拡張します。
これは実験的機能です。イシュー7473で、あなたのフィードバックをお聞かせください。
スタックされた差分を作成
大きな機能をより小さくレビュー可能な変更に分割したい場合は、スタックされた差分を作成します。
前提条件:
- GitLab CLIがインストールされ、認証されている必要があります。
スタックされた差分を作成するには:
あなたのターミナルで、新しいスタックを作成し、名前を付けてください。例:
glab stack create add-authenticationあなたのエディタで最初の変更セットを作成します。
最初の差分として変更を保存します:
glab stack saveプロンプトが表示されたら、この変更を説明するコミットメッセージを入力します。
次の変更セットを作成し、これを2番目の差分として保存します:
glab stack saveglab stack saveを実行するたびに、新しい差分とブランチが作成されます。プロンプトが表示されたら、この変更を説明するコミットメッセージを入力します。GitLabに変更をプッシュしてマージリクエストを作成する準備ができたら、以下を実行します:
glab stack sync
あなたのマージリクエストはレビュー可能です。このスタックでさらに差分を作成し続けることも、他の作業にスイッチすることもできます。
スタック内の差分に変更を追加
スタック内の特定の地点に戻って変更を追加するには:
スタックのリストを表示します:
glab stack move編集したいスタックを選択し、Enterを押します。
変更を加えます。
準備ができたら、変更を保存し、以下を実行します:
glab stack amendオプション。スタックの説明を変更します。
変更をプッシュします:
glab stack sync
既存のスタックを同期すると、GitLabは次のことを行います:
- あなたの新しい変更で既存のスタックを更新します。
- スタック内の他のマージリクエストをリベースして、あなたの最新の変更を取り込みます。
利用可能なコマンド
スタックされた差分を操作するには、これらのコマンドを使用します:
| コマンド | 説明 |
|---|---|
create | 新しいスタックを作成します。 |
save | あなたの変更を新しい差分として保存します。 |
amend | 現在の差分を修正します。 |
prev | 前の差分に移動します。 |
next | 次の差分に移動します。 |
first | 最初の差分に移動します。 |
last | 最後の差分に移動します。 |
move | リストから任意の差分を選択します。 |
sync | ブランチをプッシュし、マージリクエストを作成/更新します。 |
保存と修正の選択
目的別に以下のコマンドを使用します:
glab stack save: 新しい差分(コミットとブランチ)を作成します。スタックに新しい論理的変更を追加する際に使用します。glab stack amend: 現在の差分を修正します。レビューフィードバックに対応したり、現在の変更を修正したりする際に使用します。