核心命令
# 列出所有 worktree
git worktree list
# 创建一个新的 worktree(为新任务创建新分支)
git worktree add -b ai/alice/task-1 .worktrees/ai-alice-task-1 origin/main
# 在已有分支上创建 worktree
git worktree add .worktrees/review-some-pr some-branch
# 创建 detached(临时实验,不绑定分支)
git worktree add --detach .worktrees/exp origin/main
# 删除 worktree(推荐用 remove,而不是直接 rm 目录)
git worktree remove .worktrees/ai-alice-task-1
# 清理已丢失目录的残留记录
git worktree prune
AI 协作命名约定(建议)
- 目录:
.worktrees/<agent>-<task>(可加时间戳避免冲突) - 分支:
ai/<agent>/<task> - 提交:每个任务至少 1 次可回滚提交;避免把多个任务塞进一个 commit
常见坑(最容易踩)
- 同一分支不能被多个 worktree 同时 checkout。 想并行请创建多个分支(可都从同一个起点切出来)。
- 别直接
rm -rfworktree 目录。 先git worktree remove,否则会留下元数据,需要prune。 - 别把 worktree 目录提交进仓库。 用
.gitignore忽略.worktrees/。 - 长跑 worktree 建议 lock。 移动硬盘/网络盘场景,避免被自动 prune(见
git worktree lock)。
审阅小技巧
# 从主工作区审阅某个 AI worktree 的改动
git diff main..ai/alice/task-1
# 只看文件列表
git diff --name-only main..ai/alice/task-1
# 只挑某个目录
git diff main..ai/alice/task-1 -- src/