跳转到内容

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_branch false 删除 worktree 后删除分支

默认情况下,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%)并在后台删除。临时目录会在系统重启时自动清理。

详细流程:

  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_clean 删除 worktree 之前 当前 worktree
post_clean 删除 worktree 之后 主仓库

在清理前保存工作:

[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 到主仓库
主仓库 (新的当前位置)