コンテンツにスキップ

vibe clean

cleanコマンドは現在のWorktreeを削除し、メインリポジトリに戻ります。

Terminal window
vibe clean

未コミットの変更がある場合でも確認プロンプトをスキップします。

Terminal window
vibe clean --force

Worktree削除後にブランチも削除します。

Terminal window
vibe clean --delete-branch

Worktree削除後もブランチを保持します。設定ファイルのdelete_branch設定を上書きします。

Terminal window
vibe clean --keep-branch

実行されるgitコマンドなど、詳細な出力を表示します。

Terminal window
vibe clean --verbose

不要な出力を抑制します。

Terminal window
vibe clean --quiet

--claude-code-worktree-hook v0.23.0+

Section titled “--claude-code-worktree-hook ”

Claude Code WorktreeRemoveフックモード。stdinからWorktreeパスを読み取り、Worktreeを削除します。

Terminal window
vibe clean --claude-code-worktree-hook --force

設定の詳細はClaude Code連携を参照してください。

.vibe.tomlでデフォルトの動作を設定できます:

[clean]
delete_branch = true # デフォルトでブランチを削除
オプションデフォルト説明
delete_branchfalseWorktree削除後にブランチを削除

高速削除(パフォーマンス最適化)

Section titled “高速削除(パフォーマンス最適化)”

デフォルトで、vibeはworktreeディレクトリを一時的な場所に移動し、バックグラウンドで非同期削除する高速削除戦略を使用します。これにより、大きなリポジトリでもvibe cleanが瞬時に感じられます。

~/.config/vibe/settings.jsonで設定できます:

{
"version": 3,
"clean": {
"fast_remove": true
}
}
オプションデフォルト説明
fast_removetrue高速非同期削除を使用(移動 + バックグラウンド削除)

仕組み:

プラットフォームによって動作が異なります:

  • macOS: Finderを通じてシステムのゴミ箱に移動します。必要に応じて復元可能で、OSが管理する信頼性の高いクリーンアップが保証されます。
  • Linux/Windows: システムの一時ディレクトリ(/tmpまたは%TEMP%)に移動し、nohupを使用してバックグラウンドで削除します。一時ディレクトリはシステム再起動時に自動的にクリーンアップされます。

詳細なプロセス:

  1. worktreeディレクトリは瞬時に移動(O(1)リネーム操作)
  2. 空になったディレクトリに対してgit worktreeメタデータをクリーンアップ
  3. 実際のファイル削除はバックグラウンドで非同期実行
  4. 以前の.vibe-trash-*ディレクトリは自動的にクリーンアップ

注意: 高速移動が何らかの理由で失敗した場合(例:クロスデバイスリンクエラー)、自動的に従来の削除にフォールバックします。

Worktreeを削除する前に、vibe cleanは:

  1. 未コミットの変更をチェック
  2. 変更がある場合は確認を求める
  3. pre_cleanフックを実行
  4. Worktreeを削除
  5. post_cleanフックを実行
  6. メインリポジトリにディレクトリを変更
$ vibe clean
未コミットの変更があります。本当にクリーンアップしますか? (y/N)

未コミットの変更がある場合、vibeは:

  • 警告を表示
  • 確認を求める
  • 明示的に確認した場合のみ続行

cleanコマンドはクリーンアップタスク用のフックをサポートしています:

[hooks]
pre_clean = ["git stash"]
post_clean = ["echo 'クリーンアップ完了'"]
フック実行タイミング作業ディレクトリ
pre_cleanWorktree削除前現在のWorktree
post_cleanWorktree削除後メインリポジトリ

クリーンアップ前に作業を保存:

[hooks]
pre_clean = [
"git stash --include-untracked",
"echo '変更をstashしました'"
]

共有リソースをクリーンアップ:

[hooks]
post_clean = [
"docker-compose down",
"echo 'クリーンアップ完了'"
]
Worktree (現在)
├── pre_cleanフックが実行
├── git worktree remove
├── post_cleanフックが実行
└── メインリポジトリにcd
メインリポジトリ (新しい現在地)
  • start - Worktreeの作成
  • フック - クリーンアップフックの設定