Files
chill_notes/AI工程/概念/Git_Worktree.md
2026-06-22 11:30:51 +08:00

3.0 KiB
Executable File
Raw Blame History

Git Worktree

相关:Harness工程核心Loop超级Loop

定义

Git Worktree是Git的一个功能允许从同一个仓库检出多个工作目录每个工作目录都是一个独立的分支。

核心思想:共享同一个.git目录节省磁盘空间实现多任务并行开发。

核心特征

1. 多工作区

  • 一个仓库,多个工作目录
  • 每个工作目录是一个独立分支
  • 共享同一个.git目录

2. 并行开发

  • 多个AI实例可以同时工作
  • 互不干扰
  • 快速切换

3. 节省空间

  • 共享.git目录
  • 不需要克隆多个仓库
  • 节省磁盘空间

基本命令

创建Worktree

# 基于已有分支创建
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

# 列出所有工作区
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实例并行开发

# 主工作区开发功能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实例

场景2AI + 人工并行开发

# AI在feature-a开发
cd /project/feature-a
claude-code

# 人工在main分支修复紧急bug
cd /project/main
# 手动修复bug

场景3Code Review时继续开发

# 主工作区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的组成部分
  • 核心LoopGit Worktree支持并行执行多个Loop
  • 超级LoopGit Worktree支持并行执行多个超级Loop