Skip to main content

create-worktree

Create or reuse a git worktree for a pull request or branch so reviews and work happen in isolation

معلومات المصدر

المستودع
dlt-hub/dlt
آخر نشاط في المصدر
٥ أغسطس ٢٠٢٦ في ١٧:٠٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦٬٠٢٤
التفرعات
٦٣٧

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
create-worktree
description
Create or reuse a git worktree for a pull request or branch so reviews and work happen in isolation
argument-hint
<name> [--pr <number>] [--branch <ref>]
# 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 using `gh 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 `--pr` was given, run `cd <worktree-path> && gh pr checkout <number>` to make sure it is up to date. - If `--branch` was given, run `git -C <worktree-path> checkout <ref>`. - **If no worktree exists** at the target path, create one: - If `--pr` was given, first resolve the PR's branch name: `gh pr view <number> --json headRefName -q .headRefName` - If `--pr` or `--branch` was given, check `git worktree list` output for any **other** worktree that already has the same branch checked out. If found: - Use `AskUserQuestion` to 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. - If no conflict, create the worktree: - If `--branch` was given: `git worktree add .worktrees/<name> <ref>` - Otherwise: `git worktree add .worktrees/<name> --detach` - Callers needing a new branch check it out afterwards: `git checkout --no-track -b <new-branch>` - If `--pr` was given, then also: `cd <worktree-path> && gh pr checkout <number>` - `gh pr checkout` handles 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> ```
عرض على GitHub