Hu-Wentao

git-worktree

Create a git worktree for the current repository at the same directory level as the project root. This skill automates branch creation, directory naming according to the format project-T-branch, and initial project setup (e.g., dependency installation). Use this when the user wants to work on a new feature or fix without switching their current workspace.

Hu-Wentao 0 Updated 3mo ago

Resources

2
GitHub

Install

npx skillscat add hu-wentao/wyatt-skills/git-worktree

Install via the SkillsCat registry.

SKILL.md

Git Worktree

Overview

This skill allows you to quickly create a new git worktree for the current project. The worktree is created in the same parent directory as the current project's root, following the naming convention PROJECT-NAME-T-BRANCH-NAME.

Workflow

  1. Verification:

    • Verify the current directory is within a Git repository.
    • Identify the absolute path of the project's root.
  2. User Interaction: Proactively suggest values for the required parameters. Ask the user for:

    • New branch name: The name of the branch to be created. Suggest a context-aware name (e.g., feat-improvement or fix-issue-123 based on context.
    • Base branch: The branch to base the new branch on (Default: the current branch).

    Crucially, if the user does not respond to a question or provides no alternative, proceed immediately using your suggested values instead of repeating the question. The goal is to minimize friction while allowing for customization.

  3. Path Calculation: Calculate the new worktree path at the same directory level as the project root. For example, if the project is in /Users/user/my-project, the worktree will be created at /Users/user/my-project-T-NEW-BRANCH.

  4. Creation: Execute scripts/create_worktree.sh to:

    • Create the new worktree and branch.
    • Perform initial project setup (e.g., flutter pub get, npm install).
  5. Confirmation: Report the location of the new worktree and any initial setup status.

  6. Management: Use scripts/manage_worktrees.sh to:

    • List all current project worktrees.
    • Interactively select and remove a specific worktree.

Usage Example

User: "Create a worktree for this repo."
Gemini: "I'll create a new worktree for you. I'll use the branch name feat-wyatt_skills-260221 based on the current branch main. Is that okay, or would you like a different name?"
User: "That's fine."
Gemini: [Runs the script and confirms the path /Users/huwentao/_proj/wyatt_skills-T-feat-wyatt_skills-260221]

Another Example (Proactive/No Response):
User: "Create a worktree for feature-login."
Gemini: "I'll create a worktree for feature-login based on main. Starting the setup now..."
Gemini: [Runs the script and confirms the path /Users/huwentao/_proj/foo_proj-T-feature-login]

Manage Worktrees:
User: "Show my worktrees and help me delete one."
Gemini: "Here are your current worktrees. Which one would you like to remove?"
Gemini: [Lists worktrees and prompts for selection via scripts/manage_worktrees.sh]

Resources

scripts/

  • create_worktree.sh: A bash script that calculates the paths, runs git worktree add, and performs initial project setup.
    • Arguments: project_path new_branch base_branch
  • manage_worktrees.sh: A script to list and interactively remove worktrees.
    • Arguments: project_path