create-worktree
community[skill]
Create or reuse a git worktree for a pull request or branch so reviews and work happen in isolation
$
/plugin install dltdetails
Git Worktree
Set up an isolated git worktree.
Parse $ARGUMENTS to extract:
- The worktree name (required) — used as the directory name under
.worktrees/ --pr <number>(optional) — checkout a GitHub PR into the worktree usinggh pr checkout--branch <ref>(optional) — create the worktree from a specific branch or ref
Steps
1. Determine worktree path
The worktree path is: <repo-root>/.worktrees/<name>
For example, if the repo root is /home/user/src/dlt and the name is review-pr-3584, the worktree path is /home/user/src/dlt/.worktrees/review-pr-3584.
Create the .worktrees directory if it does not exist:
mkdir -p <repo-root>/.worktrees
2. Create or reuse the worktree
Check if a worktree already exists at that path:
git worktree list
- If a worktree already exists at the target path, reuse it.
- If
--prwas given, runcd <worktree-path> && gh pr checkout <number>to make sure it is up to date. - If
--branchwas given, rungit -C <worktree-path> checkout <ref>.
- If
- If no worktree exists at the target path, create one:
- If
--prwas given, first resolve the PR's branch name:gh pr view <number> --json headRefName -q .headRefName - If
--pror--branchwas given, checkgit worktree listoutput for any other worktree that already has the same branch checked out. If found:- Use
AskUserQuestionto ask the user: "Branch<branch>is already checked out in worktree<existing-path>. Use that worktree instead?" - If the user says yes, use the existing worktree path (skip creation, proceed to step 3 with the existing path).
- If the user says no, STOP — do not create a new worktree. Print a message explaining that the branch is already checked out elsewhere and exit.
- Use
- If no conflict, create the worktree:
- If
--branchwas given:git worktree add .worktrees/<name> <ref> - Otherwise:
git worktree add .worktrees/<name> --detach - If
--prwas given, then also:cd <worktree-path> && gh pr checkout <number>
- If
- If
gh pr checkouthandles fetching, fork tracking, and branch setup automatically.
3. Switch cwd
cd <worktree-path>
Then verify the switch took effect:
pwd
If pwd does not show the worktree path, stop with an error — the cwd did not persist.
4. Report
Worktree ready: <worktree-path>
technical
- github
- dlt-hub/dlt
- stars
- 5236
- license
- Apache-2.0
- contributors
- 100
- last commit
- 2026-04-21T07:09:28Z
- file
- .claude/skills/create-worktree/SKILL.md