它是什么
一个 macOS 桌面应用,专门用来看 Git 历史,不用来写。把几个仓库加进来,所有项目、worktree 和分支都在一个窗口里:左边是项目和改动,右上是提交图,下面是你点开的那个提交——完整的提交说明、指向 GitHub 的 PR 链接、并排的 diff。
它不提交、不暂存、不合并、不变基。唯一的两种写操作是 git fetch 和在你确认后删掉已经合并的 worktree。

想回答的问题
agent 写代码以后,我的工作从「写」变成了「看」:同一时间有好几个 agent 各在一棵 worktree 里干活,我要知道每棵树里改了什么、哪些已经合进 main、哪些还挂着、某个提交当时到底动了哪些文件。现有的 Git 客户端是为「写」设计的,一个窗口只管一个仓库,提交图里主干会被分支挤来挤去,每个按钮都可能改到仓库。
Retrace 想回答:如果一个 Git 工具只为「审」服务,它应该长什么样。
几个设计取舍
- 主干永远在最左列。 集成分支占提交图的第 0 列,是一条直线;agent 的分支从右边分出去、再汇回来。其他分支默认不画,要的时候再加。
- worktree 按状态收纳。 主树之外分成「进行中」「已合并」「分支」三个下拉。已合并的可以安全删除:不加
--force,删之前逐棵复查,分支只用git branch -d删。 - 只读要彻底。 agent 正在那些树里干活,所以每次调用 git 都带
GIT_OPTIONAL_LOCKS=0,不抢 index 锁;列改动只用不碰 index 的底层命令;判断 squash 合并时产生的临时对象写在仓库外面。 - 点提交,看 diff。 点一行打开下方的说明和 diff,再点一次收起。正文默认完整显示,squash 或 merge 提交直接给出 PR 链接。也可以切到「文件」,看任一提交时的整个目录,Markdown 像 GitHub 一样渲染。
- 一个窗口,挤不坏。 四块视图可以拖动停靠、交换位置,每块都有最小尺寸;设置和视图开关都在 macOS 菜单栏里,页面上只留看代码要用的东西。

现状
已发布 0.4.0:Apple 芯片和 Intel 两个版本,中文和英文界面,MIT 开源。官网 retrace.linjiejim.com 上有一张实时滚动的提交图,展示主干如何守住第 0 列。Windows 版还没做。
