Skip to content

AtomCode Git Worktree 隔离系统分析

持续深度分析 — /worktree 子命令、分支隔离、沙箱化开发 2026-06-23


1. Worktree 系统概览

AtomCode 内置了完整的 Git Worktree 隔离系统,允许在不污染主工作目录的情况下进行实验性开发。

斜杠命令: /worktree
子命令:   create, list, done, cleanup
用途:     创建隔离的 git worktree 进行安全开发

2. CLI 命令参考

命令说明示例
/worktree create <branch> [base]创建 worktree 并切换/worktree create fix-bug main
/worktree list列出活跃 worktrees/worktree list
/worktree done切换到原目录/worktree done
/worktree cleanup <branch> [--force]清理 worktree/worktree cleanup fix-bug --force

3. 完整工作流

1. 创建隔离环境
   ┌─────────────────────────────────────┐
   │ /worktree create fix-bug main        │
   │                                     │
   │ 动作:                                │
   │  ├── git worktree add <path> <base>  │
   │  ├── 创建新分支 (refs/heads/<name>)  │
   │  └── 切换到 worktree 目录            │
   └─────────────────────────────────────┘

2. 在隔离环境中工作
   ┌─────────────────────────────────────┐
   │ - 文件修改不影响主目录                │
   │ - git commit 仅影响 worktree 分支    │
   │ - 可安全运行破坏性命令               │
   └─────────────────────────────────────┘

3. 返回主目录
   ┌─────────────────────────────────────┐
   │ /worktree done                       │
   │ → 切换回原始工作目录                 │
   └─────────────────────────────────────┘

4. 清理
   ┌─────────────────────────────────────┐
   │ /worktree cleanup fix-bug           │
   │ → git worktree remove <path>        │
   │ → 可选 --force 强制删除             │
   └─────────────────────────────────────┘

4. 底层 Git 操作

二进制中提取的 git 命令序列:

bash
# 创建 worktree
git worktree add <path> <base_branch>
git branch refs/heads/<name>

# 列出 worktree
git worktree list --porcelain

# 删除 worktree
git worktree remove <path>

# 获取仓库根目录
git rev-parse --show-toplevel

# 获取当前分支名
git rev-parse --abbrev-ref HEAD

# 其他 git 操作
git --git-dir=<path> stash
git status --short
git diff
git log --oneline -1 --format="%h %s"
git rev-parse --is-inside-work-tree
git add .
git commit -m "<message>"
git push

5. 错误处理

错误信息场景
git worktree add failed:创建 worktree 失败(分支冲突、路径问题)
git worktree remove failed:删除 worktree 失败(脏状态)
Failed to run git worktree listworktree 列表获取失败
Failed to resolve git repository root不在 git 仓库中
Failed to run git worktree addgit add 命令失败
No active worktree session. Use /worktree create first.无活跃 worktree

6. worktree 状态管理

rust
// 活跃 worktree 由状态跟踪
// worktree create → 记录当前 worktree 信息
// worktree done   → 清除记录
// worktree list   → 查询 git worktree list --porcelain

// 状态包括:
//   - 创建时间
//   - 分支名
//   - worktree 路径
//   - 原始目录

7. 与 /bg 后台任务的对比

特性/worktree/bg
隔离级别文件系统隔离 (完整 git worktree)会话隔离 (内存)
文件变更不影响主仓库共享同一工作目录
git 操作独立分支,独立 commit共享主仓库
适用场景实验性开发、破坏性重构后台构建、并行任务
命令数量7+4
资源消耗高(完整的 git worktree)

8. 与 Claude Code 的兼容性

Compatibility alias: start a one-shot task in a /bg slot

Worktree 系统与 Claude Code 的 worktree 子命令兼容,共享相同的 git worktree 后端。


9. 新覆盖的盲区

#之前未覆盖的领域状态发现
1Worktree 系统完整命令集create/list/done/cleanup
2底层 git 操作序列15+ git 命令
3错误处理消息6 种错误场景
4worktree vs /bg 对比文件系统 vs 会话隔离
5Claude Code 兼容性共享 git worktree 后端

本报告由持续分析循环生成

逆向命令索引

bash
# 提取 worktree 相关命令
strings atomcode.bin.bak | grep -iE "worktree|isolation|branch" | grep -v "https\?://" | sort -u | head -10
# 输出: /worktree create /worktree cleanup /worktree create fix-bug main

基于 VitePress 构建 · AtomCode v4.25.3 逆向工程分析文档