Skip to main content

git-worktree-tidy

Fetch latest from origin, prune remote-tracking refs, delete stale local branches and worktrees, and fast-forward important branches. Use when tidying up a worktree-based repo layout.

Datos de origen

Repositorio
NeverSight/learn-skills.dev
Última actividad en el origen
6 de agosto de 2026 a las 03:19
Idioma detectado de SKILL.md
inglés
Estrellas
218
Forks
38

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
13 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
git-worktree-tidy
description
Fetch latest from origin, prune remote-tracking refs, delete stale local branches and worktrees, and fast-forward important branches. Use when tidying up a worktree-based repo layout.
metadata
{"short-description":"Worktree hygiene cleanup"}
# git-worktree-tidy Routine hygiene for bare-repo + worktree layouts. Fetches origin, prunes gone branches and orphaned worktrees, and fast-forwards important local branches. ## When to use User asks to "fetch prune", "clean up stale branches/worktrees", or "update main/dev to latest" in a worktree-based repo. ## Hard Rules - All destructive actions (worktree remove, branch delete) require user confirmation. Present the full list and wait. - Never force-delete a worktree with uncommitted changes without explicit approval. Flag dirty worktrees separately. - Use `--ff-only` when updating branches. If ff-only fails, stop and ask. - Operate from the `.bare` directory (or repo root) for branch/worktree management commands. ## Workflow ### 1) Locate the bare root Determine the bare repo directory: - If cwd contains `.bare/`, use it - Otherwise: `git rev-parse --git-common-dir` All branch and worktree management commands run from this directory. ### 2) Fetch + prune ```bash git fetch --prune origin ``` Report what was pruned (deleted remote-tracking branches, updated refs). ### 3) Discover stale branches ```bash git branch -vv | grep ': gone]' ``` Collect branch names whose upstream is gone. ### 4) Discover stale worktrees ```bash git worktree list git worktree prune --dry-run ``` Cross-reference worktrees against the gone-branch list. Check each stale worktree for dirty state: ```bash cd <worktree-path> && git status --short ``` Categorize: - **Clean + gone**: safe to remove - **Dirty + gone**: flag for user review - **Prunable metadata**: orphaned worktree entries (directory already gone) ### 5) Confirm deletions Present a summary table: ``` Stale worktrees to remove: <path> (<branch>) [clean] <path> (<branch>) [dirty — N uncommitted changes] Stale branches to delete: <branch> Prunable worktree metadata: <entry> ``` Wait for user confirmation before proceeding. ### 6) Remove stale worktrees For each confirmed worktree: ```bash git worktree remove <name> ``` If removal fails (dirty), report and skip unless user approved force. ### 7) Delete stale branches ```bash git branch -D <branch1> <branch2> ... ``` ### 8) Prune worktree metadata ```bash git worktree prune -v ``` ### 9) Update important branches Identify which branches have dedicated worktrees for `main`, `dev`, or other important branches (user may specify). For each: ```bash cd <worktree-path> && git pull --ff-only origin <branch> ``` If ff-only fails, report the divergence and ask for guidance. ### 10) Final status Show a summary: what was removed, what was updated, any items skipped.
Ver en GitHub