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

126 lines
3.0 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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实例
```
### 场景2AI + 人工并行开发
```bash
# AI在feature-a开发
cd /project/feature-a
claude-code
# 人工在main分支修复紧急bug
cd /project/main
# 手动修复bug
```
### 场景3Code 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