一文读懂什么是 Fork

本文作者:Stan

TRAE 研发工程师

什么是 Fork

当你和 AI 做项目时,你可能遇到过这些卡点:

  • 想同时尝试两种实现方案

例如让 TraeCode 用 React 和 Vue 分别实现同一个页面。Fork 后,两边都基于相同需求和上下文开始。

  • 对比不同设计方案

例如已经生成了一个页面,但你想保留当前版本,同时尝试"极简风"和"企业后台风"。

  • 修改方向发生变化

例如原本要做网页版,后来想改成命令行工具。Fork 后可以保留原来的网页开发路线,再单独发展 CLI 版本。

  • 担心新尝试破坏当前成果

例如当前代码已经基本可用,但你想让 TraeCode 大范围重构。Fork 后可以放心尝试,原任务仍然保留。

  • 从同一个阶段处理不同问题

例如当前任务已经定位到一个错误,你可以 Fork 一条路线专门修复问题,另一条路线继续完善功能。

  • 为不同目标准备不同版本

例如同一份内容分别准备"内部技术版"和"对外汇报版",两者共享已有材料,但后续编辑方向不同。

  • 需要回到之前的某个上下文重新开始

如果当前任务已经经过很多轮修改,方向变复杂了,可以从较早的状态 Fork,重新给出更清晰的指令。

判断标准很简单:

1️⃣ 如果你想保留当前进度,同时尝试另一种后续方向,就适合使用 Fork。

2️⃣ 如果只是继续当前路线,就【直接在原任务中对话】;如果任务完全无关,则【新建任务】更合适。

简单来说,Fork 可以理解为"从当前任务复制出一条新的分支任务"。

Fork、继续任务、新建任务的区别

在开始使用之前,先搞清楚这三个操作的区别:

操作 做了什么 适用场景
Fork 从某条回复处"复制"对话历史,开出一条新会话 想在已有讨论基础上换方向、比较方案、深入追问
继续任务 在原来的会话里接着聊,不创建任何新东西 任务还没做完,想接着上次的进度继续
新建任务 从零开始一段全新对话,不携带任何旧上下文 要做一件和之前完全无关的事

什么时候用 Fork

刚接触 Fork 的朋友可能会问:到底什么时候用 Fork,什么时候直接新建任务?下面这张表可以帮你快速判断:

你的场景 推荐操作 原因
想在已有讨论基础上换个方向试试 Fork 保留上下文,不用重讲背景
讨论跑偏了,想回到之前正确的节点 Fork 从正确的那条回复重新出发
想单独深入追问某个细节 Fork 不打乱主线对话的节奏
要做一个完全无关的新任务 新建任务 无需携带旧上下文
刚才的任务还没做完,想接着来 继续任务 直接在原会话里继续即可
需要 AI 并行处理一个独立子问题 子任务 / Subagent 不需要主线对话的完整上下文

如何在 TraeCode 中使用

先等当前回复完成,再选择起点:

IDE 模式(Dev):从 AI 回复下方进入

把鼠标移到想保留的回复下方,点击 Fork。进入新会话后,直接说这次要尝试什么。

左上角显示 IDE,中央是编辑区,右侧是对话。红框标出 Fork 入口。

SOLO 模式:同样从 AI 回复处分叉

打开任务,在目标回复下方点击 Fork。新会话会出现在任务列表中,原任务仍可打开。

左上角显示 SOLO,左侧是任务列表。在当前任务的回复下方点击红框中的 Fork。

Task List(侧边任务栏):复制整段已完成会话

在 SOLO 左侧任务列表中,打开任务右侧 ... → 复制会话。适合沿用这段讨论的全部历史。

「复制会话」会新建会话;回复下方的「复制全部」只是复制内容。

先分清:对话分开,文件仍共享

Fork 复制的是对话。同一工作区里的会话,仍可能修改同一份项目文件。

先比较方案,选好后再改文件。 要同时试两套代码,先准备各自独立的项目目录。

特别注意: Fork 只分叉"对话",不分叉"文件"。

举个例子: 你在分叉 A 里让 AI 修改了 index.html,然后切到分叉 B,B 里看到的也是被修改后的 index.html。

因此,在选定方案之前,建议先和 AI"只讨论、不改文件",等方向确定后再动手改代码。

实践场景 1:同一个作品集,比较两种表达

你要做一个展示 3 个设计项目的作品集首页,既想用于求职,也想吸引客户。两种方案共用项目背景,但首页重点不同。

这次用 Fork:背景讲一次,两种方向分别试。

① 先把共同需求讲清楚

以下以 SOLO 为例,先让 AI 确认「作品集首页展示 3 个设计项目」的共同需求,暂不展开两种方向。

② 从同一条回复,分别 Fork 两次

在需求总结的回复处 Fork,在新会话中发送下方提示词,将【招聘方/潜在客户】替换为「招聘方」;再回到同一条回复 Fork,把对象改为「潜在客户」。

沿用共同需求,这次面向【招聘方/潜在客户】。给出首页标题、3 个内容区块和主按钮文案,150 字以内。只讨论,不改文件。

通过任务 ... → 重命名,分别标成「A|招聘方」「B|潜在客户」。

③ 看结果,再选一条继续

在左侧任务列表切换 A/B,对照各自的标题、内容区块和主按钮。求职沿 A 继续,接单沿 B 继续。

两条方案分别保留,选好后沿其中一条继续细化。

实践场景 2:方案越聊越重,回到简单目标

假设你只想做一页活动报名页,讨论却逐渐加上会员、积分和复杂后台,首版迟迟无法确定。

这次用 Fork:保留原讨论,把新会话拉回最小可用方案。

① 找到方向还对的那条回复

找到仍围绕「活动介绍+简短报名表+提交反馈」的回复,在加入会员、积分之前分叉。

② Fork,并明确这次的范围

沿用已确认的活动报名目标,只保留首版必要流程。不要会员、积分或复杂后台。请给出一页结构、必填字段和提交反馈,先讨论,不改文件。

③ 先确定能做完的一版

确认方案覆盖活动说明、填写报名和提交反馈,再开始制作。会员、积分等想法留在原会话,以后按需展开。

原讨论保留,新会话只展开首版需要的内容。

实践场景 3:把细节问清楚,再回主线继续

报名页方案已经确认,你准备继续做页面,却想弄明白:联系方式要不要必填?填错时怎样提示?这段追问可以单独聊。

① 从字段方案的回复处 Fork

找到已经说明报名表字段的 AI 回复,点击 Fork,把新会话命名为「追问|校验」。

② 只追问这一个细节

沿用报名页方案,联系方式是否必须填写?为空或格式不对时,何时、在哪里提示?用三条解释,先讨论,不改文件。

报名主线和追问会话分别保留,细节可以单独展开。

③ 回到原会话,接着做页面

问清楚后,切回刚才用于 Fork 的报名主线继续。想采用某个结论,就把它简要补到原会话里。

分叉里的讨论不会自动合并回原会话。 主线保留已有方案,追问会话留着以后查阅。

小习惯:共同要求先讲清,每条分叉只改一个方向,按差异命名。

一些常见问题

以下是一些大家可能会遇到的问题:

Q:Fork 和新建会话有什么区别? A: Fork 会带上已有对话背景,适合接着同一个问题换方向。完全无关的新任务,直接新建会话更清楚。

Q:从中间 Fork,后面的内容会带过去吗? A: 不会。只复制所选 AI 回复及之前的对话。想沿用整段已完成讨论,可用任务列表的「复制会话」。

Q:新会话的追问,会改掉原会话吗? A: 不会。追问和回复留在新会话中。原会话可以继续,也能从同一条回复再次 Fork。

Q:Fork 会复制项目文件,或恢复当时的代码吗? A: 不会。Fork 只复制对话,不会复制项目文件或回滚代码。

如果到现在你对 Fork 还是觉得有点抽象,我们最后再来用几个日常生活中的场景来解释:

类比 1:游戏里的"存档点" 你在玩 RPG 游戏,打到一个岔路口,左边是火山,右边是冰洞。你先存个档,然后去火山探索。如果不满意,读档再去冰洞。

Fork 就像这个存档点:你在某条 AI 回复处"存档",然后开一条新路线去探索,原来的存档(原会话)还在。

类比 2:考试时的草稿纸 数学考试遇到一道难题,你不确定用哪种解法。

于是你在草稿纸上抄下题目和已有的推导,开一块新区域试方法 A。

又撕一张纸抄同样的内容,试方法 B。

Fork 就像"抄写一份已有推导,在新区域换方法试"。

弄清楚了吗?

现在开始,打开你的 TraeCode 去体验一下「Fork」功能吧,期待你的反馈!

相关推荐
百万蹄蹄向前冲2 小时前
妙!文档懒得写,就让AI 生成新员工学习指南
前端·后端·trae
豆包MarsCode2 小时前
求职必备|如何用 TraeCode 搭建 3D 作品集网站
trae
豆包MarsCode6 天前
AI 圈爆火的 Jev 是什么?如何在 TraeCode 中使用
trae
带电的小王6 天前
Trae + Agnes:接入无限期免费文本、图片、视频模型,告别 Token 焦虑
trae·agnes·免费模型
百慕大三角7 天前
AI 写代码最大的风险不是不会写,而是太能写:我给 Coding Agent 加的 4 层工程约束
前端·ai编程·trae
豆包MarsCode10 天前
如何用 TraeCode 构建个人知识库(Wiki)
trae
豆包MarsCode10 天前
从 0 到百万级关注:我用 TraeCode 做了一款大学生求职应用
trae
j7~10 天前
【C++微服务项目开发脚手架】(准备篇)从 0 到跑通:Docker 容器开发环境 + 宿主机用户 + Trae 远程连接 全链路踩坑实战
linux·c++·学习·xshell·docker容器·trae
草帽lufei10 天前
当zf开始全员推广AI,软件供应商的生计没了
ai编程·trae