如何创建Git别名实现按指定模式删除本地分支?
Git批量删除分支别名配置方案
你的原配置失效是因为混用了不同终端的命令语法,以下是对应不同终端的可行配置:
适用于Git Bash(类Unix环境)
修改.gitconfig中的别名配置为:
[alias] del = !f() { git branch -d $(git branch --list "$1" | xargs); }; f
- 用Shell函数包裹实现参数传递,
$1对应你传入的分支匹配规则(比如feature/*); xargs自动去除分支名前后空格,替代原命令里的trim();- 若要强制删除未合并的分支,把
-d改成-D即可。
适用于Windows PowerShell
如果日常用PowerShell作为终端,配置改为:
[alias] del = !powershell -Command \"git branch -d @(git branch --list '$1' | ForEach-Object { $_.Trim() })\"
- 直接调用PowerShell执行命令,通过
ForEach-Object { $_.Trim() }实现分支名去空格; - 引号转义是为了让Git正确解析参数。
使用方法
直接在终端运行:
git del 'feature/*'
就能批量删除所有匹配规则的本地分支。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

