用途:gitkit 是供其他技能调用的 git 基础层,集中存放各技能反复推导的 git 事实:worktree 放在哪里、叫什么名字、如何创建/接管/移除,哪个分支是基础分支,何时 rebase 何时 merge。它只回答“在哪里、怎么做”,不负责提交、开 PR、审查 diff 或判断代码内容。
主要能力:worktree 模式负责创建、接管、查找、列出和移除 worktree;sync 模式把特性分支与其远端同步、更新到最新基础分支,并用 lease 强制推送;clean 清理已合并的 worktree 与分支,每次移除单独确认;rescue 找回看似丢失的工作并恢复到新分支;stack 通过 gh stack 构建和重排分支链。worktree 与 sync 内联,其余按需加载。
约定:路径为 $WORKTREE_ROOT/<repo-basename>/<local-branch-name>,$WORKTREE_ROOT 默认 ~/worktrees,分支名中的斜杠扁平化为连字符。worktree 位于仓库之外,避免被 docker 构建上下文、文件监听或测试 glob 扫入。核心不变量是一个分支最多一个 worktree,查找始终通过 git 而非读取路径。分支命名包括 issue-<n>-<slug>、hotfix-<slug>、pr-<n>-<slug>。
用法:查找用 git -C "$REPO" worktree list --porcelain;创建前先 fetch,再 git -C "$REPO" worktree add -b "$BRANCH" "$WT" "$BASE";移除前检查 gitkit 标记,脏 worktree 停止拆除,删除分支用 -d,仅 squash 合并场景在 gh 报告已合并且 headRefOid 等于本地分支尖端时用 -D。基础分支按 gh、origin/HEAD、origin/main 或 master 的顺序判定,仍无法确定则询问用户。同步默认 rebase,已发布分支预览一次并等待确认,推送用 --force-with-lease。
限制:stack 分支需要 gh 与 GitHub 远端,无 gh 时降级为普通 git;gitkit 不重命名用户提供的分支名;资料未提供收费、价格或平台支持等更多信息。