在 Codex 里写代码时,我希望能直接查看当前项目有哪些分支、每个分支提交了什么,再顺手检查一下工作区改动。于是做了一个开源插件 Git Branch Explorer,把这些操作放进 Codex 的右侧面板。
现在发布到了 v0.4.0,使用 MIT 许可证。它是独立开发的第三方插件,安装不需要修改 Codex 本体。
项目地址:Winlifes/codex-git-branch-explorer
先看运行效果
截图使用临时演示仓库,在本地 MCP 开发宿主中采集,未包含 Codex 窗口外框。
安装后,在 Codex 右侧面板点击 + → Git 就能打开。面板跟随 Codex 的主题和语言,支持英文、简体中文;窄面板下,分支列表会变成可以展开的抽屉。
把分支、历史和改动放在一起
分支按文件夹组织
分支名中的 / 会变成目录层级,例如:
本地分支
├─ codex
│ ├─ card-collection
│ └─ fixes
│ └─ scrollbars
├─ feature
│ └─ local-storage
└─ main
远程分支
└─ origin
├─ codex
└─ main
文件夹可以展开、收起,显示下面有多少个分支;当前分支会有标记。展开状态按仓库分别保存,搜索时自动展开匹配的完整路径,清空搜索后恢复之前的状态。方向键也能在目录间移动。
点选分支只切换正在浏览的历史,不会直接 checkout。 真正切换工作区分支,要从“分支操作”中发起并确认。
每次提交都能看到时间、行数和 diff
提交列表显示提交说明、作者、短 SHA、日期时间,以及新增和删除的行数。列表中的行数统计以第一父提交为基准,根提交与空目录比较;二进制文件不计入文本增删行数。
点击提交后,可以继续看完整信息、变更文件和逐文件 diff。合并提交支持选择父提交来查看差异,也能按提交说明或作者搜索历史。
工作区里可以做常用 Git 操作
目前支持:
- 单文件或全部暂存、取消暂存,提交已暂存内容。
- 创建、切换和合并分支,删除已合并的本地分支。
- 用
git revert生成反向提交来撤销某次提交。 - 获取远程更新、快进拉取、普通推送和设置上游。
- 单文件或全部撤回未暂存改动,执行前保存本地备份。
撤回未暂存改动时,会保留已经暂存的内容。部分暂存的文件恢复到暂存区版本,未跟踪文件则先备份再移除。备份位置会显示在操作结果里,方便手动恢复。
Git 写操作为什么要分两步
给界面加按钮很容易,但“我正在看哪个分支”和“工作区当前在哪个分支”并不一定相同。如果点击后立刻修改仓库,就容易操作错目标。
所以这个插件的写操作采用 预览 → 确认执行:先列出仓库、目标分支和受影响的路径,确认后再执行。预览凭据五分钟后过期,执行前还会重新核对仓库状态;如果期间文件或引用发生变化,需要重新生成预览。
实现上,前端通过 MCP Apps 与本机 Python 服务通信,后端用参数数组调用 Git。界面不接受自由拼接的 Git 命令。Git 的身份、凭据、钩子和签名配置沿用本机设置。
v0.4.0 发布前通过了 72 项 Python 测试和 9 项分支树测试。写操作测试使用临时仓库和本机裸远程,覆盖部分暂存、合并冲突、撤回备份、重复确认和预览过期等场景。
安装与目前的边界
需要 Git、Python 3.9+,以及支持 MCP 面板入口的 Codex 桌面客户端。插件运行不依赖 npm、第三方 Python 包或额外 API Key。
git clone https://github.com/Winlifes/codex-git-branch-explorer.git
cd codex-git-branch-explorer
python3 scripts/install.py
也可以从 Releases 下载 ZIP 后安装。安装器会配置本机 MCP 启动路径并注册个人插件市场。
几个实际使用时需要知道的边界:
- 已在 macOS 验证,其他平台暂未完成验证;面板入口依赖 Codex 客户端支持。
- 新任务尚未提供项目目录时,插件会给出消息和仓库检查提示,也可以手动选择仓库;旧任务同样可以使用。
- “刷新”重读本地 Git 数据,远程分支要通过“获取”更新。
- 拉取只允许快进;没有提供强制推送、强制删分支或硬重置。
- 目前通过 GitHub 分发,尚未上架 OpenAI 官方插件目录;更新后若仍显示旧界面,可等任务结束后重新打开 Codex。
README 已提供中英文说明、截图和操作细节。如果你也在 Codex 里管理多个 Git 分支,欢迎试用,并在 Issues 反馈具体场景,尤其是不同客户端版本下的兼容性问题。