vibe clean
clean 命令会删除当前 worktree 并让你返回主仓库。
vibe clean--force, -f
Section titled “--force, -f”存在未提交的更改时跳过确认提示。
vibe clean --force--delete-branch
Section titled “--delete-branch”删除 worktree 后一并删除分支。
vibe clean --delete-branch--keep-branch
Section titled “--keep-branch”删除 worktree 后保留分支。该选项会覆盖配置中的 delete_branch 设置。
vibe clean --keep-branch-V, --verbose
Section titled “-V, --verbose”显示详细输出,包括所执行的 git 命令。
vibe clean --verbose-q, --quiet
Section titled “-q, --quiet”抑制非必要的输出。
vibe clean --quiet--claude-code-worktree-hook v0.23.0+
Section titled “--claude-code-worktree-hook ”Claude Code WorktreeRemove 钩子模式。从 stdin 读取 worktree 路径并删除该 worktree。
vibe clean --claude-code-worktree-hook --force配置详情请参阅 Claude Code 集成。
可以在 .vibe.toml 中配置默认行为:
[clean]delete_branch = true # 清理时默认删除分支| 选项 | 默认值 | 说明 |
|---|---|---|
delete_branch |
false |
删除 worktree 后删除分支 |
快速删除(性能优化)
Section titled “快速删除(性能优化)”默认情况下,vibe 采用快速删除策略:先将 worktree 目录移动到临时位置,再在后台异步删除。这使得即便是大型仓库,vibe clean 也能瞬间完成。
可以在 ~/.config/vibe/settings.json 中配置:
{ "version": 3, "clean": { "fast_remove": true }}| 选项 | 默认值 | 说明 |
|---|---|---|
fast_remove |
true |
使用快速异步删除(移动 + 后台删除) |
工作原理:
不同平台的行为有所不同:
- macOS:通过 Finder 移动到系统废纸篓。需要时可以恢复,并由操作系统负责可靠的清理。
- Linux:移动到 XDG 回收站。在支持的环境中可以从桌面文件管理器恢复。
- Windows:移动到回收站。需要时可以恢复,并与操作系统的行为保持一致。
如果系统回收站不可用或操作失败,vibe 会回退到将 worktree 移动到系统临时目录(/tmp 或 %TEMP%)并在后台删除。临时目录会在系统重启时自动清理。
详细流程:
- 瞬间移动 worktree 目录(O(1) 的重命名操作)
- 对已清空的目录清理 git worktree 元数据
- 实际的文件删除在后台异步进行
- 之前遗留的
.vibe-trash-*目录会被自动清理
注意: 如果快速移动因任何原因失败(例如跨设备链接错误),会自动回退到传统删除方式。
删除 worktree 之前,vibe clean 会:
- 检查是否有未提交的更改
- 如有更改则请求确认
- 执行 pre-clean 钩子
- 删除 worktree
- 执行 post-clean 钩子
- 将目录切换到主仓库
未提交更改的警告
Section titled “未提交更改的警告”$ vibe clean存在未提交的更改。确定要执行清理吗? (y/N)如果存在未提交的更改,vibe 会:
- 显示警告
- 请求确认
- 只有在你明确确认后才继续
clean 命令支持用于清理任务的钩子:
[hooks]pre_clean = ["git stash"]post_clean = ["echo '清理完成'"]| 钩子 | 执行时机 | 工作目录 |
|---|---|---|
pre_clean |
删除 worktree 之前 | 当前 worktree |
post_clean |
删除 worktree 之后 | 主仓库 |
pre-clean 钩子示例
Section titled “pre-clean 钩子示例”在清理前保存工作:
[hooks]pre_clean = [ "git stash --include-untracked", "echo '更改已 stash'"]post-clean 钩子示例
Section titled “post-clean 钩子示例”清理共享资源:
[hooks]post_clean = [ "docker-compose down", "echo '清理完成'"]worktree (当前) │ ├── 执行 pre_clean 钩子 │ ├── git worktree remove │ ├── 执行 post_clean 钩子 │ └── cd 到主仓库 │ ▼主仓库 (新的当前位置)