> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diversion.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# shelf

> 現在のリポジトリのシェルフを管理する

シェルフを使用すると、ワークスペースの変更を一時的に保存し、後で復元できます。Git の stash に似ています。

シェルフは単一のリポジトリに属しますが、特定のブランチには紐づいていません。あるブランチでシェルフを作成し、別のブランチで適用することができます。

シェルフ名はリポジトリ内でユーザーごとに一意である必要があり、60 文字を超えることはできません。

以下のすべてのコマンドで、`<shelf>` パラメータはシェルフ名または ID のどちらでも指定できます。

## list

リポジトリ内のすべてのシェルフを一覧表示します。

```bash theme={null}
dv shelf
```

## create

現在のワークスペースの変更からシェルフを作成します。

```bash theme={null}
dv shelf create <name> [paths...] [--no-reset]
```

`<name>` はシェルフの名前です。

`[paths...]` はシェルフに保存する特定のファイルのオプションのリストです。省略した場合は、すべての変更がシェルフに保存されます。

`[--no-reset]` はシェルフの作成後もワークスペースの変更を保持します。デフォルトでは、変更はリセットされます。

## show

シェルフに含まれるファイルのリストを表示します。

```bash theme={null}
dv shelf show <shelf>
```

## apply

シェルフを現在のワークスペースに適用します。

```bash theme={null}
dv shelf apply <shelf> [--keep] [-f]
```

`[--keep]` は適用後もシェルフを保持します。デフォルトでは、シェルフは削除されます。

`[-f]` は確認プロンプトをスキップします。

シェルフに保存された変更が現在のワークスペースと競合する場合、続行するには競合を解決する必要があります。

## rename

既存のシェルフをリネームします。

```bash theme={null}
dv shelf rename <shelf> <new_name>
```

## delete

シェルフを完全に削除します。

```bash theme={null}
dv shelf delete <shelf> [-f]
```

確認プロンプトをスキップするには `-f` を使用します。このアクションは元に戻すことができません。

## 例: マシン間で変更を持ち運ぶ

シェルフはクラウドに保存されるため、同じリポジトリで作業する複数のマシン間で未コミットの作業を移動するために使用できます。

```bash theme={null}
# マシン A で
dv shelf create my-wip

# マシン B で（同じリポジトリ、任意のワークスペース）
dv shelf apply my-wip
```

Diversion におけるシェルフに関する詳細については、[シェルフ](../basic/shelves) ページを参照してください。
