Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

git-worktreeGit 工作树

Agent Skill

git-worktree 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

624

周安装

25

GitHub Stars

210

下载量

202
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:git-worktree(Git 工作树)
来源仓库:https://github.com/codemie-ai/codemie-code
仓库路径:skills/git-worktree
安装命令:
npx skills add https://github.com/codemie-ai/codemie-code --skill git-worktree
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/codemie-ai/codemie-code --skill git-worktree

简介

git-worktree 提供 Git 工作树的高效管理功能,支持多分支并行开发。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中需要同时处理多个特性分支时使用。
  • 允许在不同目录中同时检出多个分支,便于并行开发和测试。
  • 安装前建议确认 Git 版本和工作流程需求,注意必须遵守分支保护工作流程。
  • 提供预防性分支保护机制,确保开发工作不会意外提交到主分支。

SKILL.md

Git Worktree Management Skill

This skill helps you manage git worktrees efficiently. Git worktrees allow you to check out multiple branches simultaneously in different directories, which is useful for:

  • Working on multiple features in parallel
  • Testing different branches without losing work-in-progress
  • Reviewing code while continuing development
  • Quick bug fixes on main while working on a feature branch

⚠️ CRITICAL: Proactive Branch Protection Workflow

MANDATORY RULE: Before starting ANY development work, always check the current branch to prevent accidental commits to main/master.

When to Apply This Workflow

Trigger this workflow proactively when the user requests ANY development task:

  • Implementing features ("add feature X", "build component Y")
  • Fixing bugs ("fix this bug", "resolve the error")
  • Writing or modifying code ("update this file", "refactor the code")
  • Making changes to the codebase ("change the logic", "improve performance")

Branch Protection Steps

  1. Check Current Branch git branch --show-current
  2. If on main/master/develop branch

- STOP immediately before making any code changes - Inform the user: "⚠️ You're currently on the [branch-name] branch. To protect the main branch from accidental commits, I recommend creating a feature branch worktree for this work." - Ask: "Would you like me to create a feature branch worktree? (y/n)"

  1. If User Agrees (or automatically proceed)

- Ask for branch name if not provided: "What would you like to name the branch? (e.g., feat/add-login, fix/button-crash)" - Generate appropriate branch prefix following commitlint conventional commit types: - feat/: New features (e.g., feat/user-authentication) - fix/: Bug fixes (e.g., fix/login-error) - refactor/: Code refactoring (e.g., refactor/auth-module) - perf/: Performance improvements (e.g., perf/optimize-queries) - docs/: Documentation changes (e.g., docs/api-guide) - style/: Code style/formatting (e.g., style/eslint-fixes) - test/: Adding or updating tests (e.g., test/auth-coverage) - chore/: Maintenance tasks (e.g., chore/update-deps) - ci/: CI/CD changes (e.g., ci/github-actions) - build/: Build system changes (e.g., build/webpack-config) - Create the worktree using the workflow below - Switch to the new worktree - Confirm: "✓ Switched to branch worktree at [path]. Ready to proceed with development."

  1. If User Declines

- Warn: "⚠️ Proceeding on [branch-name] branch. Please be careful with commits." - Continue with the requested work

Quick Worktree Creation Workflow

When creating a feature branch worktree:

# 1. Get repository name
REPO_NAME=$(basename "$(git rev-parse --show-toplevel)")

# 2. Get and sanitize branch name
BRANCH_NAME="feat/new-feature"  # User provided or generated with commitlint prefix
SANITIZED_BRANCH=$(echo "$BRANCH_NAME" | sed 's/\//-/g')

# 3. Build worktree path
WORKTREE_PATH="../${REPO_NAME}-wt-${SANITIZED_BRANCH}"

# 4. Create worktree with new branch
git worktree add -b "$BRANCH_NAME" "$WORKTREE_PATH" main

# 5. Switch to the worktree
cd "$WORKTREE_PATH"

Example Interaction

User: "Let's add a new authentication feature"

Assistant checks branch: git branch --show-current → returns "main"

Assistant responds: "⚠️ You're currently on the main branch. To protect the main branch from accidental commits, I recommend creating a feature branch worktree for this work.

Would you like me to create a feature branch worktree? I can name it feat/authentication or you can suggest a different name."

User: "Yes, use feat/auth"

Assistant executes:

REPO_NAME=$(basename "$(git rev-parse --show-toplevel)")
BRANCH_NAME="feat/auth"
SANITIZED_BRANCH="feat-auth"
WORKTREE_PATH="../${REPO_NAME}-wt-feat-auth"
git worktree add -b "$BRANCH_NAME" "$WORKTREE_PATH" main
cd "$WORKTREE_PATH"

Assistant confirms: "✓ Created and switched to feature branch worktree at ../myproject-wt-feat-auth. Ready to implement the authentication feature."

Benefits of This Workflow

  • Prevents accidents: Never commit directly to protected branches
  • Clean history: Keeps main branch clean and stable
  • Easy collaboration: Feature branches are standard for PRs
  • Parallel work: Can still access main branch in original directory
  • Safe experimentation: Easy to discard or reset feature branch

Naming Convention

Worktrees should be created as sibling directories with a clear naming pattern:

Pattern: ../<repo-name>-wt-<branch-name>

Example: For a repo named "MyProject" with branch "feat/new-login":

/Users/username/source/myproject/              # Main repo
/Users/username/source/myproject-wt-feat-new-login/  # Worktree

Note: Branch names follow commitlint conventional commit types (feat/, fix/, refactor/, etc.)

Available Operations

List Worktrees

Show all existing worktrees with their paths and branches:

git worktree list

Example output:

/Users/username/source/myproject        c5b174796b4 [main]
/Users/username/source/myproject-wt-feat-auth   def5378 [feat/new-login]
/Users/username/source/myproject-wt-fix-crash   ghi9022 [fix/button-crash]

Create a New Worktree

When creating worktrees, automatically use the naming convention:

For existing branches:

git worktree add ../<repo-name>-wt-<sanitized-branch-name> <branch-name>

For new branches:

git worktree add -b <new-branch-name> ../<repo-name>-wt-<sanitized-branch-name> <base-branch>

Note: Branch names with slashes (e.g., feature/new-login) should be sanitized by replacing / with - for the directory name.

Examples:

# Checkout existing feature branch
git worktree add ../myproject-wt-feat-auth feat/auth

# Create new feature branch from main
git worktree add -b feat/new-payment ../myproject-wt-feat-new-payment main

# Create bugfix worktree
git worktree add -b fix/critical-bug ../myproject-wt-fix-critical-bug main

Remove a Worktree

When you're done with a worktree:

# Remove worktree (must not have uncommitted changes)
git worktree remove ../<repo-name>-wt-<branch-name>

# Force remove even with uncommitted changes
git worktree remove --force ../<repo-name>-wt-<branch-name>

Prune Stale Worktrees

Clean up worktree metadata for manually deleted directories:

git worktree prune

Move a Worktree

Relocate an existing worktree (maintaining naming convention):

git worktree move <old-path> <new-path>

Lock/Unlock Worktrees

Prevent accidental deletion:

git worktree lock <path>
git worktree unlock <path>

Helper Functions

When creating worktrees, the skill should:

  1. Get the repository name: Extract from the current directory name
  2. Sanitize the branch name: Replace / with - for the path
  3. Build the path: ../<repo-name>-wt-<sanitized-branch-name>

Example logic:

REPO_NAME=$(basename "$(git rev-parse --show-toplevel)")
BRANCH_NAME="feature/new-login"
SANITIZED_BRANCH=$(echo "$BRANCH_NAME" | sed 's/\//-/g')
WORKTREE_PATH="../${REPO_NAME}-wt-${SANITIZED_BRANCH}"

git worktree add "$WORKTREE_PATH" "$BRANCH_NAME"

Best Practices

  1. Naming Convention: Always use <repo-name>-wt-<branch-name> pattern
  2. Location: Keep worktrees as siblings to the main repo directory
  3. Cleanup: Remove worktrees when done to avoid clutter
  4. Branch Tracking: Each worktree tracks a different branch
  5. Shared Objects: Worktrees share the same.git repository, saving disk space
  6. Multiple Repos: The naming convention prevents confusion when multiple repos are in the same parent directory

Troubleshooting

Worktree Already Exists

If you get an error that a worktree already exists for a branch, you can:

  1. Use git worktree list to find where it is
  2. Remove the existing worktree first
  3. Check out a different branch in the existing worktree

Locked Worktree

If removal fails due to a lock:

git worktree unlock <path>
git worktree remove <path>

Stale Worktree References

If worktrees were manually deleted:

git worktree prune

Branch Name Sanitization

Remember to replace / with - when creating directory names from branch names like feature/new-loginfeature-new-login.

Integration with This Skill

Automatic Triggers

When you ask me to:

  • Start development work - I'll FIRST check if you're on main/master and suggest a worktree
  • "List my worktrees" - I'll run git worktree list
  • "Create a worktree for feature X" - I'll use the <repo-name>-wt-X naming pattern
  • "Clean up worktrees" - I'll help remove old ones safely
  • "Switch to worktree Y" - I'll navigate to the properly named directory
  • "What worktrees exist?" - I'll list and explain them with full paths

Development Task Examples

Example 1: User says "Let's add a login feature"

  1. Check branch: git branch --show-current → "main"
  2. Warn and suggest worktree creation
  3. If approved, create feat/login worktree
  4. Switch to worktree
  5. Proceed with implementation

Example 2: User says "Fix the broken button"

  1. Check branch: git branch --show-current → "main"
  2. Warn and suggest worktree creation
  3. If approved, create fix/broken-button worktree
  4. Switch to worktree
  5. Proceed with fix

Example 3: User says "Refactor the authentication module"

  1. Check branch: git branch --show-current → "feat/dashboard"
  2. Already on feature branch, safe to proceed
  3. Continue with refactoring

This skill automatically applies the naming convention to keep your workspace organized, especially when managing multiple repositories in the same parent directory. The proactive branch protection ensures you never accidentally commit to protected branches.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.12%
按下载量换算69

Claude

28.15%
按下载量换算57

Cursor

19.48%
按下载量换算39

Gemini CLI

9.75%
按下载量换算20

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills