工作区结构

让子模块和工作树的状态一目了然。

FluxGit 展示子模块、工作树及父子仓库之间的关系,帮助你在由多个部分组成的工作区中看清未提交的更改,以及与父仓库所记录提交的不一致。

Git 工作树与子模块:你需要哪一种?

工作树:同一仓库的另一个检出目录

关联工作树让你在另一个文件夹中使用不同分支,而无需改变当前已打开的检出目录。它适用于在同一仓库中并行开展任务或智能体尝试。

子模块:嵌入父仓库的独立仓库

子模块拥有自己的历史记录。父仓库记录它所需的具体子模块提交,因此你可以引入另一个项目,并自行选择何时更新这个引用。

两者解决不同的问题:工作树为同一仓库提供多个工作文件夹;子模块连接两个仓库。FluxGit 在同一个工作区视图中显示关联工作树和父子仓库的子模块状态。请参阅并行编程智能体的安全工作树工作流,以及Git 工作树和Git 子模块文档,了解底层 Git 行为。

同时使用 Git worktree 和子模块

工作树与子模块可以共存,但需要分别检查每个检出目录。Git 文档说明,跨多个工作树的子模块支持尚不完整,并建议不要为同一超级项目创建多个检出目录。采用这种结构前,请先确认这一限制。

修改引用前,请比较这三个提交。提交相同并不表示子仓库工作目录没有未提交的改动。FluxGit 展示父子仓库状态和引用偏移;Agent Lanes 可比较并行尝试,而不会应用其更改。

查看只读检查流程

两个智能体工作树并行尝试同一任务 · 比较尝试结果,再通过受保护的流程合并选中的尝试 · 真实界面,合成演示数据

问题:由多个部分组成的仓库容易隐藏状态不一致。

子模块可能偏离父仓库记录的提交,工作树则将多个分支分散到不同文件夹中。如果看不到这些状态,就可能提交一个指向错误子模块提交的父仓库。

当前范围

子模块和工作树工作流目前处于 Beta 测试阶段。待处理状态会按工作区显示;子模块和工作树的破坏性操作,与其他操作一样,都需要经过受保护的确认流程。

FluxGit 如何提供帮助。

子模块

父子仓库关系

克隆时默认初始化子模块,你可以从相关上下文打开子仓库或父仓库。在 Fleet Radar 中,你可以将发生偏移的子模块指针记录到父仓库,或将子模块返回到已记录的提交;这适用于任意嵌套深度。

工作树

创建 / 打开 / 删除

需要桌面后端的工作树操作会受执行条件限制,并提供帮助。同一任务的并行尝试位于关联工作树中时,你可以并排比较它们,再通过受保护的流程合并选中的尝试。

尝试

并排查看尝试结果

逐个文件并排比较智能体的并行尝试。多个尝试都修改过的文件会排在前面,每个单元格都可以打开对应尝试的差异。比较视图不会应用任何更改。

安全

破坏性操作不会悄然执行

子模块和工作树的破坏性操作会在执行前请求确认。

并排比较并行尝试。

Agent Lanes 将每个并行尝试放在一列、每个文件放在一行,并与当前检出目录比较。从单元格中查看每个尝试的差异,再通过受保护的流程合并选中的尝试。

FluxGit Agent Lanes 并排比较三个并行尝试:codex/fix-login、claude/login-retry 和 cursor/login-guard。共有七个文件,多个尝试都修改过的三个文件优先突出显示
并排查看三个并行尝试 · 多个尝试都修改过的文件排在前面 · 真实 FluxGit 界面,合成演示数据

记录偏移后的子模块指针,或返回到原提交。

当子模块的检出状态偏离父仓库记录的提交时,Fleet Radar 提供两种操作。一种通过只包含该指针的提交,将新指针记录到父仓库。另一种将子模块返回到已记录的提交,并保留还原点;如果此次检出会留下一个不包含在任何分支、标签或远程引用中的提交,该操作会拒绝执行。两种操作都适用于嵌套子模块。

隐私与安全方式。

工作区检查以本地处理为先。FluxGit 读取本地结构,不会将其发送到任何地方。

相关功能。

应用内录制

侧边栏显示子模块的路径、提交及是否存在未提交的更改。