dyoshikawa

clean-branches

清理不必要的本地分支并修剪过时的远程跟踪分支,以保持仓库整洁。当需要安全删除已合并或废弃分支时使用。

dyoshikawa 1,548 167 更新于 3个月前
GitHub

安装

npx skillscat add dyoshikawa/rulesync/clean-branches

通过 SkillsCat registry 安装。

技能简介

清理不必要的本地分支并修剪过时的远程跟踪分支,以保持仓库整洁。当需要安全删除已合并或废弃分支时使用。

SKILL.md

Clean Branches

Clean up unnecessary local branches and prune stale remote-tracking branches.

Step 1: Inspect Current State

Run the following:

  • git branch --show-current
  • git branch --format='%(refname:short)'
  • git remote show origin
  • git branch -vv

Identify:

  • The current branch
  • The default branch (for example main or master)
  • Branches whose upstream has been deleted

After identifying the default branch, list branches already merged into it:

  • git branch --merged <default-branch>

If you want to use the remote-tracking branch as the source of truth, use:

  • git branch --merged origin/<default-branch>

Step 2: Refresh Remote State

Update remote refs and prune deleted remote branches:

git fetch --prune

If needed, also run:

git remote prune origin

Step 3: Select Branches to Delete

Delete only branches that are clearly unnecessary.

Safe candidates include:

  • Local branches already merged into the default branch you identified above
  • Local branches whose upstream branch is gone and are no longer needed

Never delete:

  • The current branch
  • The default branch
  • Branches that are not fully merged unless the user explicitly asks for force deletion

If there is any ambiguity, show the candidate branches to the user and ask for confirmation.

Step 4: Delete Branches

For merged branches, delete them safely:

git branch -d <branch-name>

Only if the user explicitly approves force deletion for unmerged branches, use:

git branch -D <branch-name>

Delete branches one by one, not with a broad wildcard command.

Step 5: Report Result

Summarize:

  • Which branches were deleted
  • Which branches were skipped and why
  • Whether stale remote-tracking branches were pruned