mcpField
G
git-worktree-manager

git-worktree-manager

github.com/d-o-hub开发1339 次安装今天更新
代码仓库

关于 git-worktree-manager

git-worktree-manager 是管理 Git worktree 的技能,适合需要同时处理多个分支的开发者。它涵盖创建、列出、移除和清理 worktree,并提供并行测试与代码审查的工作流示例。

主要功能

  1. 01从分支或提交创建 worktree
  2. 02以易读格式列出 worktree
  3. 03移除 worktree 并清理元数据
  4. 04锁定和解锁 worktree
  5. 05测试与审查工作流

适用场景

  1. 01在主线工作期间开发功能
  2. 02并行测试多个分支
  3. 03隔离环境中审查拉取请求
  4. 04清理已合并或孤立的 worktree

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/d-o-hub/rust-self-learning-memory --skill git-worktree-manager

安装后在 Claude Code 中输入/git-worktree-manager确认已加载。

详细介绍

Git 工作树管理器

管理 git 工作树,以支持并行多分支开发,同时保持主工作目录整洁。

推荐的目录结构

project/
├── main-repo/          # Main working directory
└── worktrees/          # All worktrees here
    ├── feature/name/
    ├── bugfix/name/
    └── experiment/name/

核心命令

创建工作树
# From existing branch
git worktree add ../worktrees/feature-name feature-branch

# Create new branch
git worktree add -b feature/new ../worktrees/new-feature

# Detached HEAD (specific commit)
git worktree add ../worktrees/temp HEAD~5
列出工作树
git worktree list
git worktree list --porcelain  # Machine-readable
移除工作树
git worktree remove ../worktrees/name        # Safe (clean only)
git worktree remove --force ../worktrees/name  # Force removal
git worktree prune                           # Clean administrative data
锁定/解锁
git worktree lock ../worktrees/name    # Prevent operations
git worktree unlock ../worktrees/name

工作流模式

功能开发
git worktree add -b feature/new ../worktrees/feature/new
cd ../worktrees/feature/new
# ... develop ...
cargo test  # Test in isolation
git push
cd /path/to/main && git merge feature/new
git worktree remove ../worktrees/feature/new
并行测试
for branch in feature/a feature/b; do
  git worktree add ../worktrees/$branch $branch
  cd ../worktrees/$branch && cargo test &
done
wait
代码审查
git worktree add ../worktrees/review/pr-123 origin/pr-123
cd ../worktrees/review/pr-123
cargo test
git worktree remove ../worktrees/review/pr-123

查找孤立的工作树

git worktree list | while read path commit branch; do
  if ! git show-ref --verify --quiet "refs/heads/${branch#*/}"; then
    echo "Orphaned: $path"
  fi
done

最佳实践

应该做
  • 在 ../worktrees/ 目录中进行组织
  • 使用基于分支的描述性名称
  • 合并后清理
  • 合并到 main 之前先进行测试
  • 定期清理,以移除孤立数据
不应该做
  • 创建在随意选择的位置
  • 留下未提交的更改
  • 忘记清理管理数据
  • 创建相互冲突的分支
  • 混用工作树和非工作树工作流

评论

支持 Markdown