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

相关推荐
zttbee11 小时前
git命令
git
mister_guo1 天前
开发指南:Git日常维护与常用命令
git
鶴哥只手遮天2 天前
Git 2.56 源码深度剖析:为 Git 3.0 铺路的架构重构
git·开源
小此方2 天前
「插曲:Git」标签管理篇:理解Tag标签、为指定提交打标签、查看标签详情与附注标签
git
Madison-No72 天前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman
小此方2 天前
「插曲:Git」多人协作篇:远程分支创建与关联、多人协作冲突解决、Feature分支开发与合并、git remote prune清理失效分支
git
可乐ea2 天前
Git 基础设施重建:智能体规模开发下的读写解耦
大数据·git·elasticsearch·分布式存储·git基础设施·智能体规模开发·读写解耦
信可维2 天前
AI 说「改完了」怎么确认真改完了:git diff + 测试 + 一张验收表的 3 步复核
人工智能·git
Sun子矜2 天前
Git+Gitee 新手教程精简归纳版
git·gitee
亿道电子Emdoor2 天前
【Perforce】Klocwork-kwgcheck图形化界面无法打开如何解决
git·python·github