← 返回博客
作者:BluffKing · · 更新
Git Worktree 隔离
共用一个工作目录时,不同分支也会改到同一套文件。Worktree 给每个任务独立目录和端口,再通过同一条合并路径落地。
两个并行任务即使在不同分支上,只要共用一个工作目录,就会改到同一套文件:一个 session 切分支时,另一个正在构建的 session 可能读到混合版本的源码,未提交的改动也可能互相覆盖。Git worktree 给每个任务独立的工作目录、HEAD 和 index,解决的就是这个问题。
BluffKing 用 scripts/new-session.sh raise-slider fix 从本地 main 创建任务分支和 worktree。每个 worktree 用脚本分配的新端口启动自己的后端和开发服务器,连同一个本地数据库,main 保持固定端口;Rust 编译各用自己的 target 缓存。完成检查和独立审查后,用主目录的 scripts/finish-session.sh 合并到本地 main 并清理工作树,它不会自动推送。
Git 对象、分支引用、stash、仓库配置和 hooks 仍然是所有 worktree 共享的。Worktree 也不会消除合并冲突,不隔离数据库或浏览器;任务拆分、共享资源串行和落地前重查仍然要做。