Appearance
Gemini CLI 的 Git Worktrees 功能(实验性)让每个 AI 会话拥有独立的工作目录和 Git 分支,同时共享同一仓库历史。用 --worktree feature-name 标志启动,自动在 .gemini/worktrees/ 目录下创建隔离的工作空间,适合同时处理多个独立任务。
Git Worktrees(实验性)
同时处理多个任务时,可以用 Git Worktrees 给每个 Gemini 会话分配独立的代码副本。每个 worktree 有自己的文件和分支,但共享同一个仓库历史,从根本上避免并行任务的文件冲突。
实验性功能:此功能正在活跃开发中,如有问题或建议请在 GitHub 提交 Issue 或在 CLI 中使用
/bug命令反馈。
如何启用
Git Worktrees 是实验性功能,需要手动开启。在 /settings 中搜索 Enable Git Worktrees 设为 true,或直接编辑 settings.json:
json
{
"experimental": {
"worktrees": true
}
}基本用法
用指定名称启动 worktree(名称同时作为目录名和分支名):
bash
gemini --worktree feature-search自动在 .gemini/worktrees/feature-search/ 创建工作目录,并创建 worktree-feature-search 分支。
用随机名称启动 worktree:
bash
gemini --worktree
# 自动生成类似 worktree-a1b2c3d4 的名称提示:在新 worktree 中记得按项目要求初始化开发环境,如
npm install、虚拟环境设置等。
退出 Worktree 会话
退出时(/quit 或 Ctrl+C),Gemini CLI 不会自动删除 worktree,你的文件修改和提交都被保留。Gemini 退出时会显示恢复或清理的操作说明。
恢复 Worktree 会话
切换到 worktree 目录,用 --resume 标志和会话 ID 恢复:
bash
cd .gemini/worktrees/feature-search
gemini --resume <session_id>手动管理 Worktrees
清理一个已完成的 worktree:
bash
git worktree remove .gemini/worktrees/feature-search --force
git branch -D worktree-feature-search手动创建 worktree(更灵活的位置配置):
bash
git worktree add ../project-feature-search -b feature-search
cd ../project-feature-search && gemini更多 Git Worktree 的用法参考 Git 官方文档。
常见问题
Q: 每个 worktree 中改的文件会影响主工作目录吗?
A: 不会。每个 worktree 有自己独立的文件视图和分支,主工作目录的文件完全不受影响。需要合并时用标准 Git 操作(merge/rebase)即可。
Q: worktree 中 Gemini 的会话历史和配置是共享的吗?
A: 会话历史彼此独立(每个 worktree 的会话单独存储)。用户级 ~/.gemini/settings.json 的配置是共享的,项目级 .gemini/settings.json 在各 worktree 目录下可以各自独立。
Q: 这个功能稳定吗?可以用于重要项目吗?
A: 目前标记为实验性,可能有 bug。建议先在非关键项目上试用,遇到问题通过 /bug 命令反馈。结合 Git 分支机制本身的安全性,即使出问题也可以通过 Git 历史恢复代码。