分支:worktree-agent-a4bc263f9c9ca0cda
对应 worktree:.claude/worktrees/agent-a4bc263f9c9ca0cda
既是分支 worktree-agent-a4bc263f9c9ca0cda,也绑定了一个 worktree
可以这样区分:
1. 看它是不是 Git 分支
bash
git branch --list "*worktree-agent-a4bc263f9c9ca0cda*"
如果有输出,比如:
text
+ worktree-agent-a4bc263f9c9ca0cda
说明它是一个 Git 分支。
前面的 + 表示:这个分支当前被某个 worktree 使用中,所以不能直接 git branch -D,必须先处理 worktree。
2. 看它是不是 worktree
bash
git worktree list --porcelain
你之前的输出里有:
text
worktree D:/phpstudy_pro/WWW/zhilin/aigc/aigc/.claude/worktrees/agent-a4bc263f9c9ca0cda
branch refs/heads/worktree-agent-a4bc263f9c9ca0cda
这表示:
- worktree 路径是:
.claude/worktrees/agent-a4bc263f9c9ca0cda - 它当前 checkout 的分支是:
worktree-agent-a4bc263f9c9ca0cda
如何绑定的?
绑定关系是在创建 worktree 时产生的,例如:
bash
git worktree add .claude/worktrees/agent-a4bc263f9c9ca0cda worktree-agent-a4bc263f9c9ca0cda
意思是:
text
把分支 worktree-agent-a4bc263f9c9ca0cda
检出到目录 .claude/worktrees/agent-a4bc263f9c9ca0cda
从那一刻开始:
- 这个目录就是一个 worktree
- 这个分支就被该 worktree 占用
- 主仓库里再看分支会出现
+ 分支名 - 删除分支前要先删 worktree:
bash
git worktree remove .claude/worktrees/agent-a4bc263f9c9ca0cda
git branch -D worktree-agent-a4bc263f9c9ca0cda
一句话:分支是 Git 的指针,worktree 是实际工作目录;git worktree add <目录> <分支> 会把两者绑定起来。