用途:在开始实现前,将工作隔离到独立工作树,同时不接管用户或执行框架已管理的工作树。检测工作树状态为只读操作;创建分支和工作树需要明确请求或授权。
主要能力与用法:
-
检测已有隔离。通过比较 git_dir 与 git_common,并用 superproject 排除子模块情形,判断当前检出是否已是链接工作树;子模块不算工作树隔离。已是链接工作树时直接复用,不再创建嵌套或替代工作树。
-
选择创建机制。用户或仓库明确指定原生创建或 Git 创建时按其选择。需要框架管理的放置、交接、恢复或清理时,用原生创建,并将返回的工作区视为外部管理。无明确机制时用 git worktree,且目录保持在仓库内。创建命令:git worktree add <path> -b <branch> <start-point>;检出已存在分支且未被其他工作树占用时可省略 -b。
-
目录策略。优先项目本地约定,其次已有 .worktrees/ 或 worktrees/,否则用仓库根的 .worktrees/。使用前用 git check-ignore 检查精确路径,未被忽略则加入仓库本地 Git exclude 文件;不编辑 .gitignore,也不为忽略目录创建提交。
-
准备与验证。读取项目初始化说明,按仓库包管理器和文档命令安装依赖,运行最小且有意义的基线检查,记录确切命令与结果。
输出:绝对工作区路径、分支名或 detached HEAD 状态、复用/原生创建/Git 创建机制、起始点、实际运行的设置与基线命令及结果、权限失败或既有测试失败等注意事项。
限制:工作树创建不授权提交、推送、变基、修改受跟踪配置、升级依赖或清理;外部管理的工作树不在本流程中移除,本流程创建的工作树除非后续明确授权也不移除;不移动或暂存他人的改动;沙箱或文件系统策略阻止创建时应报告失败机制。