用途
该技能用于集中管理 Git worktrees,让每个仓库只保留一个根目录,所有分支检出都放在同一个根下。适合需要同时处理多个分支、又不想让检出散落各处的场景。
目录结构
每个仓库使用一个根:
<repo>/
.git # gitdir: ./.bare
.bare/ # shared repository and object store
main/ # linked worktree
<topic>/ # linked worktree
仓库级命令在 <repo> 下运行,开发命令在某个链接工作树中运行,所有检出都保存在 <repo> 之下。
创建或复用工作树
-
在任意链接工作树或规范根目录下运行
scripts/new-worktree.sh:scripts/new-worktree.sh <local-dir> <branch> [base]仅在无法自动发现根目录时设置
WORKTREE_ROOT;当远程不叫origin时设置WORKTREE_REMOTE。 -
进入
<repo>/<local-dir>并运行:git status --short --branch
当 git worktree list 中包含该路径及其预期分支,且状态干净(除非该分支原本就带有改动)时,创建即完成。
该辅助脚本会执行 fetch 和 prune,复用已存在的本地分支、跟踪匹配的远程分支,或基于 [base] 创建新分支。使用 --help 可查看确切的决策顺序与默认值。
移除工作树
-
处理所有已暂存、未暂存和未跟踪的改动:
git -C <repo>/<local-dir> status --short --branch -
通过 Git 移除检出:
git -C <repo> worktree remove <local-dir> -
仅当本地分支的提交已整合或有意丢弃时,才删除该本地分支:
git -C <repo> branch -d <branch>
当该路径从文件系统和 git -C <repo> worktree list 中都不存在时,移除即完成。
设置与恢复
在把仓库转换为该布局、验证其不变量、清理过期的注册项或修复被移动的工作树时,阅读 references/canonical-root.md。
适用场景
需要在同一仓库内并行处理多个分支、希望统一管理工作树检出位置、或需要规范化仓库根布局并对其进行维护与修复时使用。
限制
资料未提供该技能的平台、安装方式、收费或效果等信息,相关内容暂未提供。