You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不用别名用一条命令删除除master和develop外的所有本地Git分支?

可行解决方案

Linux/macOS(Bash/Zsh 环境)

直接执行以下命令即可:

git branch | grep -v -E 'master|develop' | xargs git branch -D

命令说明:

  • git branch:列出所有本地分支
  • grep -v -E 'master|develop':-E启用扩展正则实现多条件匹配,-v反选过滤掉包含master和develop的行,输出所有需要删除的分支名
  • xargs git branch -D:将前面输出的分支名作为参数传入删除命令,-D代表强制删除;如果仅需要删除已经合并到当前分支的分支,可替换为-d,未合并的分支会触发Git提示,避免误删未提交的工作内容

前置校验建议:

执行删除命令前,可先运行以下命令预览将要删除的分支列表,确认无误后再执行完整删除命令:

git branch | grep -v -E 'master|develop'

如果需要额外保留其他分支,只需修改正则部分即可,比如要同时保留test分支,就改成'master|develop|test'。

Windows PowerShell 环境

PowerShell 没有内置grep和xargs命令,使用以下原生语法实现:

git branch | Select-String -Pattern 'master|develop' -NotMatch | ForEach-Object { $_.ToString().Trim() } | ForEach-Object { git branch -D $_ }

通用注意事项:

  • 如果你当前正处在非master/develop的分支上,Git会自动阻止删除当前所在分支,不会出现误删当前工作内容的情况
  • 如果你的项目主分支命名为main而非master,直接替换命令中的master为main即可

内容的提问来源于stack exchange,提问作者AndreyProgr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:06:10