git 区分是 Git 分支还是 worktree 路径名

分支: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 <目录> <分支> 会把两者绑定起来。

相关推荐
霸道流氓气质8 小时前
CodeBuddy中使用 MCP 工具将 XMind 思维导图转换为 Markdown —— 实操流程汇总
git·myeclipse·xmind
OsDepK13 小时前
mimo code安装教程
git·电脑·ai编程
NexTunnel17 小时前
公司老项目还在 SVN,远程维护怎么做更稳?
git·svn·gitlab·远程工作·nextunnel
满天星83035771 天前
【Git】原理及使用(七) (多人协作 [下])
git
郡杰1 天前
Git基础与开发平台搭建
git·后端
钟智强2 天前
我警告了 329 天
git·php·wordpress·webshell
乐观的冷风2 天前
我们需要将文件添加到暂存区才能提交,而移除文件后是无法添加到暂存区的,那么怎么移除一个文件让GIT不再将其纳入版本控制呢?上图中GIT已经给出了说明:
git
tjl521314_212 天前
Git SSH Host Key Verification Failed 问题排查与解决
运维·git·ssh
嘶哈哈哈2 天前
[特殊字符] Git 协作指南
git
say_fall2 天前
【Git 精品详解】企业规范:企业级开发模型、Git Flow、发版流程规范、Code Owner 制度、事故应急回滚
大数据·linux·服务器·git·学习·elasticsearch