Git如何删除除master、develop外所有本地分支(无论是否合并)
git fetch --prune 仅会删除本地存储的已失效远程跟踪分支(即origin/xxx格式的分支记录),不会删除本地自主创建的普通分支,所以才会残留大量多余分支,可按以下步骤完成全量清理:
本地分支批量清理操作步骤
- 第一步:先切换到需要保留的分支上,避免当前分支被删除时报错
git checkout master - 第二步:同步远程最新状态,清理所有已失效的远程跟踪分支
git fetch origin --prune - 第三步:批量删除所有非master、非develop的本地分支(强制删除,无视分支是否合并,执行前请确认所有需要保留的本地修改已提交或备份)
git branch | grep -v -E "master|develop" | xargs git branch -D
命令逻辑说明:git branch列出所有本地分支grep -v -E "master|develop"过滤掉master、develop两个需要保留的分支xargs git branch -D将过滤出来的分支名传给删除命令,-D参数代表强制删除,无论分支是否完成合并
- 第四步:验证清理结果,执行以下命令查看剩余本地分支
git branch
清理完成后本地分支就只会保留master、develop两个分支,和远程仓库状态对齐。
内容的提问来源于stack exchange,提问作者Noweh
相关产品推荐
相关产品推荐

