在使用 Git 时,如果远程仓库已经删除了一些分支,本地仍然会保留对应的 远程跟踪分支 和 本地分支。以下是两种方法:
git fetch --prune
或者:
git fetch -p
作用:
origin/xxx),如果远程已经不存在例如远程删除了 feature/test,执行后本地的 origin/feature/test 会消失。
先查看哪些分支已经没有远程:
git branch -vv
如果看到:
feature/test 123abc [origin/feature/test: gone] message
说明远程已经不存在。
然后删除:
git branch -d feature/test
如果 Git 不允许删除(未合并):
git branch -D feature/test
✅ 一条命令清理所有“远程已删除”的本地分支
Linux / macOS / Git Bash:
git fetch -p
git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D
作用:
git fetch -p 清理远程引用[gone] 分支💡 推荐日常用法
git fetch --prune
如果想每次 fetch 自动清理:
git config --global fetch.prune true
以后执行:
git fetch
就会自动清理远程已删除的分支。