这是 Codex CLI 在问:新开的 conversation(会话)要在哪个 Git 工作区里执行?
1. Current checkout
Keep using the current working directory
就是继续使用你现在所在的项目目录。
例如你现在终端位于:
text
~/projects/my-app
选择 Current checkout 后,新 Codex 会话仍然直接操作:
text
~/projects/my-app
因此它能看到你当前所有文件,包括尚未 commit 的修改。它接下来修改代码,也会直接反映在这个目录里。
适合:你就是想接着当前项目继续干活。
2. New worktree
Create an isolated managed checkout
这是利用 Git 的 worktree 功能,给这个新会话创建一个隔离的工作副本。
可以简单理解成:
text
你的主工作区
my-app/
↓
├── 你继续在这里开发
Codex 新 worktree
另一个目录/
↓
├── Codex 在这里独立修改
这样 Codex 的修改不会直接弄乱你当前工作目录。比如你当前正在:
text
main
你:正在修改 login.ts
同时让另一个 Codex conversation 去尝试:
text
Codex:
修改 payment.ts
修改 api.ts
运行测试
...
选择 New worktree 后,它可以在隔离环境里折腾,不会直接碰你当前 checkout 中那些未提交的修改。
最核心的区别就是:
| Current checkout | New worktree | |
|---|---|---|
| 工作目录 | 当前目录 | 新建隔离目录 |
| Codex 修改当前文件 | 会 | 不会 |
| 看到当前未提交修改 | 通常会 | 通常不会直接共享 |
| 多个 Codex 同时工作 | 容易互相影响 | 更适合 |
| 最适合 | 延续当前任务 | 并行/独立任务 |
如果你平时只开一个 Codex CLI 干活,基本选 1. Current checkout 就行。
而这个界面之所以特别有用,是因为 Codex 现在支持你开多个 conversation。比如你可以让 Conversation A 修 bug、Conversation B 写测试、你自己继续开发,这时候后两个使用独立 worktree,可以减少彼此修改文件造成的冲突。
另外有个容易误解的地方:New worktree 不是重新 git clone 一份仓库。 它用的是 Git worktree 机制,共享底层 Git 仓库数据,但拥有独立的工作目录/checkout,所以通常比重新 clone 更轻量。