SuperAPI AI 工具集

worktrees

编程与开发

查看项目

更新于 10-16 13:51

技能介绍

用途

该技能用于集中管理 Git worktrees,让每个仓库只保留一个根目录,所有分支检出都放在同一个根下。适合需要同时处理多个分支、又不想让检出散落各处的场景。

目录结构

每个仓库使用一个根:

<repo>/
  .git       # gitdir: ./.bare
  .bare/     # shared repository and object store
  main/      # linked worktree
  <topic>/   # linked worktree

仓库级命令在 <repo> 下运行,开发命令在某个链接工作树中运行,所有检出都保存在 <repo> 之下。

创建或复用工作树

  1. 在任意链接工作树或规范根目录下运行 scripts/new-worktree.sh:

    scripts/new-worktree.sh <local-dir> <branch> [base]
    

    仅在无法自动发现根目录时设置 WORKTREE_ROOT;当远程不叫 origin 时设置 WORKTREE_REMOTE。

  2. 进入 <repo>/<local-dir> 并运行:

    git status --short --branch
    

当 git worktree list 中包含该路径及其预期分支,且状态干净(除非该分支原本就带有改动)时,创建即完成。

该辅助脚本会执行 fetch 和 prune,复用已存在的本地分支、跟踪匹配的远程分支,或基于 [base] 创建新分支。使用 --help 可查看确切的决策顺序与默认值。

移除工作树

  1. 处理所有已暂存、未暂存和未跟踪的改动:

    git -C <repo>/<local-dir> status --short --branch
    
  2. 通过 Git 移除检出:

    git -C <repo> worktree remove <local-dir>
    
  3. 仅当本地分支的提交已整合或有意丢弃时,才删除该本地分支:

    git -C <repo> branch -d <branch>
    

当该路径从文件系统和 git -C <repo> worktree list 中都不存在时,移除即完成。

设置与恢复

在把仓库转换为该布局、验证其不变量、清理过期的注册项或修复被移动的工作树时,阅读 references/canonical-root.md。

适用场景

需要在同一仓库内并行处理多个分支、希望统一管理工作树检出位置、或需要规范化仓库根布局并对其进行维护与修复时使用。

限制

资料未提供该技能的平台、安装方式、收费或效果等信息,相关内容暂未提供。