用 git worktree list 查清本地有几个工作区

11 次浏览2 条回复

同一个仓库开了多个 worktree 以后,时间久了容易忘掉哪些目录还挂着,可以先列出来看一眼。

环境:Git 2.25+,在任意一个相关工作区里执行:

git worktree list

输出会显示每个工作区路径、当前提交和分支名。比如临时拉了一个目录修 bug,修完以后不确定能不能删,就先看它是不是还在列表里。

如果只想给脚本用,也可以加 porcelain:

git worktree list --porcelain

这个命令只读状态,不会改仓库。真正清理之前再确认对应目录和分支,别光凭目录名猜。

补充个容易忽略的点:git worktree list --porcelain 输出是面向脚本的字段块,解析时可以按空行分段、按 worktree / branch / HEAD 字段取值,别直接假设每行固定顺序。

清理的时候还可以先跑一眼 git worktree prune --dry-run,它只预览哪些记录会被清掉,不会真的改东西。

不过这个更偏向处理已经丢失路径的残留记录,正常还在用的 worktree 还是先用 git worktree list 对路径和分支,别直接 prune 完事。