哪些可以放心删,
Orchard 给你依据。
Orchard 找出你 Mac 上所有的 git worktree,告诉你哪些早已在 main 里——squash 合并、rebase 合并也认得出——每个结论都附上能自己核对的依据。勾选、一次清理,7 天内随时恢复。还没落地的工作会一直标出来,一样也不会丢。
worktree 越开越多,
没人记得哪个还有用。
三个 agent 各占一个 worktree,主目录上又切着别的分支。一周之后,有的 PR 早就 squash 合并了,有的改动还躺在磁盘上,有的 commit 从来没 push 过。删哪个都心虚。
git 告诉你它们在哪
13 个Orchard 告诉你该怎么办
同一批不靠猜,
摆依据。
git branch --merged 认不出 squash 合并和 rebase 合并,于是满屏都是「未合并」,哪个都不敢删。Orchard 用三层判断,由快到慢,并把找到的东西原样写给你看。
- 算出来的,不是猜的。由确定性的算法判断,AI 不参与「是否已在 main」,也不决定删什么。
- 结论说人话。「1 个 commit 已以相同内容进入 main」「PR #142 已于 3 天前合并」,不会只丢一句「可以删」。
- 和 GitHub 交叉核对。登录
gh后,用 PR 状态再验证一遍提交层的结论。
提交层分支的最新提交已经是 main 的祖先。普通 merge 和 fast-forward 在这里认出来。
补丁层比对每个 commit 的补丁和整个分支的变化,认出 rebase、cherry-pick 和 squash,再用 GitHub 上的 PR 状态交叉核对。
内容层连未提交的改动也逐块比对:main 里已经有一样的内容,或者它只是被后来的提交取代的旧版本。
一次释放 1.2 GB,
7 天内随时反悔。
勾选已经用完的 worktree,一起清理。每一个都会进「最近清理」,旁边就是「恢复」按钮。
- 先存快照。删除之前,未提交的改动(含新文件)和分支最新提交都存进
refs/orchard/trash/。 - 被忽略的文件也照顾到。
.env这类不在 git 里的文件,会先提示你,再单独备份。 - 远端一概不动。绝不删除远端分支,绝不 force push。
- 只想要回空间?可以只清
node_modules这类构建产物,保留 worktree。
没落地的工作,
一直摆在你眼前。
「待处理」只列删掉就会丢东西的 worktree。每张卡片写明具体原因,右侧直接给出下一步:提交并建 PR、把孤儿 commit 存为分支,或者交还给 agent 继续做。
未提交的改动
包括没被 git 跟踪的新文件。agent 写到一半的东西,大多在这里。
已提交,没 push
只存在这台 Mac 上。已经进了 main 的那些不算,不会误报。
从没推到远端的分支
本地新建、远端从来没有过的分支,删掉 worktree 前最容易忽略。
stash
按所属分支归到对应的 worktree 下,不再是一串看不懂的 stash@{3}。
detached HEAD 上的 commit
不属于任何分支,一切走就找不回来。一键存为分支。
中断的操作
做到一半的 rebase、merge、cherry-pick。这样的 worktree 一律不允许清理。
一条线,
看懂一个分支。
每张卡片左边都有一条分支轨:灰线是 main,曲线是这个 worktree 的分支。扫一眼就知道哪里有风险,鼠标悬停有文字解释。
它很小心。
比凌晨两点的你更小心。
清理工具最怕的是删错。所以 Orchard 有几条写死在代码里的规则,每一条都有用真实 git 仓库跑的测试。
后台只读,不打扰正在干活的 agent
自动刷新只运行只读的 git 命令,并且带上 GIT_OPTIONAL_LOCKS=0,git status 不会刷新 index,不会和 agent 争 index.lock。唯一的后台写操作是 git fetch,可以关掉。
这几种情况,一律不让清理
有 agent 进程正在这个目录里工作;rebase、merge、cherry-pick 做到一半;主 worktree。按钮根本不会出现。
删除之前,先存一份
未提交的改动和分支最新提交存进 refs/orchard/trash/,7 天内一键恢复。被忽略的 .env 之类的文件,会先提示并备份。
绝不删除远端分支,绝不 force push
远端的东西一概不动。Orchard 也不建 worktree、不启动 agent,只观察和整理已经有的。
每个操作都先给你看命令
提交、推送、清理之前,要跑的每一条 git 命令都摆在你面前。确认弹窗只写事实:会发生什么、什么不受影响、怎么撤销。
你的代码留在你的 Mac 上
不上传仓库内容,不需要账号。AI 功能是可选的,用你自己的 ChatGPT 登录;不登录时,所有核心功能照样完整可用。
从发现到收尾,
一个窗口做完。
提交并建 PR
AI 按改动内容把它们拆成几个 commit,起草 PR 标题和描述,并列出不会被提交的文件(比如 .env.local)。执行前,要跑的每一条命令都摆在你面前。
菜单栏常驻
没落地的工作,点一下就看到。

交给 Agent
把这个 worktree 的情况整理成一段说明,复制给 Claude Code 或 Codex,让它接着干。
撞车预警
两个 agent 在不同的 worktree 里改了同一个文件?合并之前就提醒你。
⌘K,用一句话找
按名字过滤;登录 ChatGPT 后,也可以按描述找。
实时,而且安静
用 FSEvents 监听文件变化,只刷新受影响的 worktree,自动忽略 node_modules 这类目录。PR 状态通过你已登录的 gh 每个仓库一次拉取。
免费版不是试用版。
所有功能免费,不限时,不要账号。付费只为一件事:同时跟踪更多项目。
固定跟踪 1 个项目,这个项目里的 worktree 数量不限。
- 1 个项目,worktree 不限
- 六类未落地工作 + 三层落地判断
- 清理与 7 天恢复、提交并建 PR
- AI 总结与起草(用你的 ChatGPT 登录)
- 菜单栏、实时更新、自动更新
解锁全部项目。买断,不订阅,不设到期时间。
- 全部项目同时跟踪
- 免费版的一切功能
- 同时激活 2 台 Mac
- 换电脑时在设置里停用,名额立即释放
- 支持独立开发者继续把它做好
你可能想问
Orchard 怎么知道一个 worktree 可以放心删?
它按三层判断:分支的最新提交是否已在 main 的历史里;每个 commit 的补丁(或整个分支 squash 之后)是否和 main 里的某次提交一致,并用 GitHub 上的 PR 交叉核对;未提交的改动是否 main 里已经有了。由确定性的算法判断,AI 不参与。每个结论都附上原因,你可以自己核对。
不小心清理错了怎么办?
清理前,未提交的改动(含新文件)和分支的最新提交都会快照到 refs/orchard/trash/,默认保留 7 天,在「可清理 › 最近清理」里一键恢复。被 git 忽略的 .env 等文件不在快照里,清理前会单独提示并备份。
会不会和正在工作的 Claude Code、Codex 冲突?
不会。所有后台命令都带 GIT_OPTIONAL_LOCKS=0,不刷新 index,也就不会抢 index.lock。有 agent 进程正在某个 worktree 里工作时,那个 worktree 会显示为「Agent 工作中」,并且不允许清理。
Orchard 会改动我的仓库吗?
自动刷新只读。只有在你点了按钮之后(提交、建 PR、清理、存为分支)才会写入,执行前会把命令列出来。Orchard 不修改你的 git 配置,只额外写 refs/orchard/*,用来存放清理前的快照。
需要 GitHub 吗?支持 GitLab 吗?
核心功能只需要本机的 git。想看 PR 状态、用「提交并建 PR」,需要安装并登录 GitHub 官方的 gh 命令行。目前只支持 GitHub。
AI 功能怎么收费?我的代码会被发出去吗?
AI 是可选的,通过「用 ChatGPT 登录」调用,消耗的是你自己 ChatGPT 套餐的额度,Orchard 不额外收费。只有你登录并使用 AI 功能时,相关的改动内容才会发给 OpenAI;不登录时,没有任何代码离开你的 Mac。
免费版和 License 有什么区别?
只有一个区别:免费版固定跟踪 1 个项目,License 解锁全部项目。所有功能(包括 AI)在免费版里都完整可用,不限时,不需要账号。
系统要求是什么?
,的 Mac,需要安装 git。Orchard 经过 Apple 公证,并通过内置的自动更新获取新版本。