clean-branches
GitHub清理本地已合并或远程删除的 Git 分支,包括关联的工作树。通过 fetch --prune 同步状态,识别并移除 [gone] 标记的分支及其 worktree,保持仓库整洁。
Trigger Scenarios
Install
npx skills add kdlbs/kandev --skill clean-branches -g -y
SKILL.md
Frontmatter
{
"name": "clean-branches",
"description": "Delete local branches whose remote has been deleted ([gone]), including their worktrees. Use for branch cleanup after merging PRs."
}
Clean Branches
Remove local branches that have been deleted on the remote (marked [gone]), including any associated git worktrees.
Steps
-
Fetch and prune remote refs:
git fetch --prune -
List branches to identify [gone] status:
git branch -vBranches with a
+prefix have associated worktrees that must be removed before deletion. -
List worktrees for reference:
git worktree list -
Remove worktrees and delete [gone] branches:
git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do echo "Processing branch: $branch" worktree=$(git worktree list | grep "\\[$branch\\]" | awk '{print $1}') if [ ! -z "$worktree" ] && [ "$worktree" != "$(git rev-parse --show-toplevel)" ]; then echo " Removing worktree: $worktree" git worktree remove --force "$worktree" fi echo " Deleting branch: $branch" git branch -D "$branch" done -
Report which branches and worktrees were removed. If none were
[gone], say no cleanup was needed.
Version History
- b4239d8 Current 2026-07-24 17:31


