进阶
git 工作树隔离
想试个有风险的改动、或让两件事互不干扰,用 heng-agent -w 名字 或 /worktree new 名字,在 .heng-agent/worktrees 下的独立工作树和 heng/名字 分支里干活,不碰主分支和你没提交的改动;满意了 /commit 再合并,不满意整个删掉。
- 预计用时
- 约 4 分钟
- 适用版本
- v0.5.0 及以上
- 需要准备
- 项目是 git 仓库
在独立的工作树里开始
启动时加 -w,或者在会话里新建:
heng-agent -w rate-limit/worktree new rate-limit它就在 .heng-agent/worktrees/rate-limit(分支 heng/rate-limit)里干活:读写的都是这个目录,主目录的文件、主分支、你没提交的改动都不碰。这个目录自动被 git 忽略,不会混进你的提交。
来回切换
| 命令 | 作用 |
|---|---|
/worktree |
列出已有的工作树 |
/worktree switch 名字 |
切到某个工作树 |
/worktree switch main |
回到主目录 |
/worktree remove 名字 |
删除工作树(分支没合并就保留,不会丢提交) |
满意了:提交再合并
在工作树里 /commit,按仓库风格写提交信息并提交到 heng/名字 分支;然后回到主目录自己合并:
git merge heng/rate-limit合并可能有冲突,heng-agent 不替你自动合并。
不满意:整个删掉
/worktree remove 名字 删掉这个工作树,主目录原封不动。分支还没合并的会保留,想彻底不要再自己 git branch -D heng/名字。
做完是这样
试验性的改动都在 .heng-agent/worktrees/名字 里,主目录的 git status 干干净净;满意的改动经 git merge heng/名字 进了主分支,不满意的整个删掉。