# Git Worktree > 相关:[[Harness工程]]、[[核心Loop]]、[[超级Loop]] ## 定义 **Git Worktree**是Git的一个功能,允许从同一个仓库检出多个工作目录,每个工作目录都是一个独立的分支。 **核心思想**:共享同一个.git目录,节省磁盘空间,实现多任务并行开发。 ## 核心特征 ### 1. 多工作区 - 一个仓库,多个工作目录 - 每个工作目录是一个独立分支 - 共享同一个.git目录 ### 2. 并行开发 - 多个AI实例可以同时工作 - 互不干扰 - 快速切换 ### 3. 节省空间 - 共享.git目录 - 不需要克隆多个仓库 - 节省磁盘空间 ## 基本命令 ### 创建Worktree ```bash # 基于已有分支创建 git worktree add ../feature-login feature/login # 创建新分支 + 工作区(最常用) git worktree add -b feature-payment ../feature-payment # 查看所有worktree git worktree list # 删除工作区 git worktree remove ../feature-login ``` ### 管理Worktree ```bash # 列出所有工作区 git worktree list # 输出: # /project/main abc1234 [main] # /project/feature-a def5678 [feature-a] # /project/feature-b ghi9012 [feature-b] # 删除工作区 git worktree remove ../feature-a # 强制删除(即使有未提交的更改) git worktree remove --force ../feature-a # 清理已删除的工作区记录 git worktree prune ``` ## 使用场景 ### 场景1:多AI实例并行开发 ```bash # 主工作区:开发功能A cd /project/feature-a claude-code # 启动Claude Code # 新开终端:开发功能B cd /project/feature-b claude-code # 启动另一个Claude Code实例 # 再开终端:开发功能C cd /project/feature-c claude-code # 启动第三个Claude Code实例 ``` ### 场景2:AI + 人工并行开发 ```bash # AI在feature-a开发 cd /project/feature-a claude-code # 人工在main分支修复紧急bug cd /project/main # 手动修复bug ``` ### 场景3:Code Review时继续开发 ```bash # 主工作区:feature-a提交PR,等待review # 新开工作区:继续开发feature-b git worktree add -b feature-b ../feature-b cd ../feature-b claude-code ``` ## 优势 1. **并行开发**:多个AI实例可以同时工作在不同分支 2. **上下文隔离**:每个功能的上下文独立,不会混淆 3. **快速切换**:不需要`git checkout`,直接切换目录 4. **节省空间**:共享.git目录 ## 挑战 - **分支管理**:需要管理多个分支 - **冲突处理**:可能需要处理分支冲突 - **学习成本**:需要了解Git Worktree概念 ## 最佳实践 1. **命名规范**:工作区目录名与分支名一致 2. **及时清理**:完成的功能及时删除Worktree 3. **AI工具支持**:利用AI工具的自动Worktree功能 4. **定期Prune**:定期清理无效的工作区记录 ## 相关概念 - [[Harness工程]]:Git Worktree是Harness的组成部分 - [[核心Loop]]:Git Worktree支持并行执行多个Loop - [[超级Loop]]:Git Worktree支持并行执行多个超级Loop