Cleans up all git branches marked as [gone] (branches that have been deleted on the remote but still exist locally), including removing associated worktrees.
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-claude-code-7e5dfce8c05e ,按照其中的说明把「clean_gone」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
You need to execute the following bash commands to clean up stale local branches that have been deleted from the remote repository.
First, list branches to identify any with [gone] status Execute this command:
git branch -v
Note: Branches with a '+' prefix have associated worktrees and must have their worktrees removed before deletion.
Next, identify worktrees that need to be removed for [gone] branches Execute this command:
git worktree list
Finally, remove worktrees and delete [gone] branches (handles both regular and worktree branches) Execute this command:
# Process all [gone] branches, removing '+' prefix if present
git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
echo "Processing branch: $branch"
# Find and remove worktree if it exists
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
# Delete the branch
echo " Deleting branch: $branch"
git branch -D "$branch"
done
After executing these commands, you will:
If no branches are marked as [gone], report that no cleanup was needed.