Git Worktree
Create a git worktree for working on a separate branch in parallel.
Current State
- •Repository: !
basename $(git rev-parse --show-toplevel) - •Current branch: !
git branch --show-current - •Existing worktrees: !
git worktree list
Instructions
Parse $ARGUMENTS to determine:
- •Branch name - required (first argument)
- •Base branch - optional (second argument, defaults to
main)
Workflow
- •
Determine the worktree path: Use
../<repo-name>-<branch-name>as the directory (sibling to the current repo). - •
Check if the branch already exists:
bashgit branch --list <branch-name> git branch -r --list "origin/<branch-name>"
- •
Create the worktree:
- •If branch exists locally or remotely:
git worktree add <path> <branch-name> - •If new branch:
git worktree add -b <branch-name> <path> <base-branch>
- •If branch exists locally or remotely:
- •
Report the result with the full path so the user can navigate to it.
Examples
- •
/worktree feature-auth→ Creates../<repo>-feature-authon new branchfeature-authfrommain - •
/worktree fix-bug develop→ Creates../<repo>-fix-bugon new branchfix-bugfromdevelop - •
/worktree existing-branch→ If branch exists, checks it out in a new worktree
Cleanup Reminder
After reporting success, remind the user how to clean up when done:
code
git worktree remove <path> # or to also delete the branch: git worktree remove <path> && git branch -d <branch-name>